diff --git a/.travis.yml b/.travis.yml index a7c01ecaf..7958679a7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -14,7 +14,7 @@ addons: apt: packages: # 7z is used for packaging (see before_deploy) - - p7zip-full + - p7zip-full cache: directories: @@ -37,9 +37,9 @@ before_cache: - rm -rf $TRAVIS_BUILD_DIR/build/ib - rm -rf $TRAVIS_BUILD_DIR/build/ibservicexdd - rm -rf $TRAVIS_BUILD_DIR/build/ServiceBases - - - + + + #install: # - docker pull evilbeaver/onescript:1.0.19 @@ -49,7 +49,7 @@ jobs: script: - sudo docker run --detach -e XVFB_RESOLUTION=1920x1080x24 --volume="${PWD}":/home/ubuntu/code onec32/client:${ONECVERSION} client > /tmp/container_id - sudo docker ps && sleep 5 - - sudo docker exec -u ubuntu "$(cat /tmp/container_id)" /bin/bash -c "cd /home/ubuntu/code; DISPLAY=:1.0 wget -q --continue -O /tmp/oscript.deb http://oscript.io/downloads/night-build/onescript-engine_1.0.21_all.deb && sudo dpkg -i /tmp/oscript.deb" + - sudo docker exec -u ubuntu "$(cat /tmp/container_id)" /bin/bash -c "cd /home/ubuntu/code; DISPLAY=:1.0 wget -q --continue -O /tmp/oscript.deb http://oscript.io/downloads/latest/onescript-engine_1.0.21_all.deb && sudo dpkg -i /tmp/oscript.deb" - sudo docker exec -u ubuntu "$(cat /tmp/container_id)" /bin/bash -c "cd /home/ubuntu/code; DISPLAY=:1.0 sudo opm install opm && sudo opm install" - sudo docker exec -u ubuntu "$(cat /tmp/container_id)" /bin/bash -c "cd /home/ubuntu/code; DISPLAY=:1.0 sudo opm run init file --buildFolderPath ./build" - sudo docker stop "$(cat /tmp/container_id)" @@ -60,7 +60,7 @@ jobs: - sudo docker ps && sleep 5 - sudo docker run -d -p 4040:4040 --link "$(cat /tmp/container_id)":http wernight/ngrok ngrok http http:6080 > /tmp/container_idngrok - sleep 5 && echo $(curl -s http://127.0.0.1:4040/status | grep -P "http://.*?ngrok.io" -oh)"/vnc_auto.html" - - sudo docker exec -u ubuntu "$(cat /tmp/container_id)" /bin/bash -c "cd /home/ubuntu/code; DISPLAY=:1.0 wget -q --continue -O /tmp/oscript.deb http://oscript.io/downloads/night-build/onescript-engine_1.0.21_all.deb && sudo dpkg -i /tmp/oscript.deb" + - sudo docker exec -u ubuntu "$(cat /tmp/container_id)" /bin/bash -c "cd /home/ubuntu/code; DISPLAY=:1.0 wget -q --continue -O /tmp/oscript.deb http://oscript.io/downloads/latest/onescript-engine_1.0.21_all.deb && sudo dpkg -i /tmp/oscript.deb" - sudo docker exec -u ubuntu "$(cat /tmp/container_id)" /bin/bash -c "cd /home/ubuntu/code; DISPLAY=:1.0 sudo opm install opm && sudo opm install && sudo opm update vanessa-runner" - ./tools/linux/travistest.sh ./features/StepsRunner/ - sudo docker exec -u ubuntu "$(cat /tmp/container_id)" /bin/bash -c "cd /home/ubuntu/code; DISPLAY=:1.0 sudo opm run initib file --buildFolderPath ./build" @@ -76,7 +76,7 @@ jobs: - sudo docker ps && sleep 5 - sudo docker run -d -p 4040:4040 --link "$(cat /tmp/container_id)":http wernight/ngrok ngrok http http:6080 > /tmp/container_idngrok - sleep 5 && echo $(curl -s http://127.0.0.1:4040/status | grep -P "http://.*?ngrok.io" -oh)"/vnc_auto.html" - - sudo docker exec -u ubuntu "$(cat /tmp/container_id)" /bin/bash -c "cd /home/ubuntu/code; DISPLAY=:1.0 wget -q --continue -O /tmp/oscript.deb http://oscript.io/downloads/night-build/onescript-engine_1.0.21_all.deb && sudo dpkg -i /tmp/oscript.deb" + - sudo docker exec -u ubuntu "$(cat /tmp/container_id)" /bin/bash -c "cd /home/ubuntu/code; DISPLAY=:1.0 wget -q --continue -O /tmp/oscript.deb http://oscript.io/downloads/latest/onescript-engine_1.0.21_all.deb && sudo dpkg -i /tmp/oscript.deb" - sudo docker exec -u ubuntu "$(cat /tmp/container_id)" /bin/bash -c "cd /home/ubuntu/code; DISPLAY=:1.0 sudo opm install opm && sudo opm install && sudo opm update vanessa-runner" - ./tools/linux/travistest.sh ./features/Core/Translate/ - sudo docker exec -u ubuntu "$(cat /tmp/container_id)" /bin/bash -c "cd /home/ubuntu/code; DISPLAY=:1.0 sudo opm run initib file --buildFolderPath ./build" @@ -92,7 +92,7 @@ jobs: - sudo docker ps && sleep 5 - sudo docker run -d -p 4040:4040 --link "$(cat /tmp/container_id)":http wernight/ngrok ngrok http http:6080 > /tmp/container_idngrok - sleep 5 && echo $(curl -s http://127.0.0.1:4040/status | grep -P "http://.*?ngrok.io" -oh)"/vnc_auto.html" - - sudo docker exec -u ubuntu "$(cat /tmp/container_id)" /bin/bash -c "cd /home/ubuntu/code; DISPLAY=:1.0 wget -q --continue -O /tmp/oscript.deb http://oscript.io/downloads/night-build/onescript-engine_1.0.21_all.deb && sudo dpkg -i /tmp/oscript.deb" + - sudo docker exec -u ubuntu "$(cat /tmp/container_id)" /bin/bash -c "cd /home/ubuntu/code; DISPLAY=:1.0 wget -q --continue -O /tmp/oscript.deb http://oscript.io/downloads/latest/onescript-engine_1.0.21_all.deb && sudo dpkg -i /tmp/oscript.deb" - sudo docker exec -u ubuntu "$(cat /tmp/container_id)" /bin/bash -c "cd /home/ubuntu/code; DISPLAY=:1.0 sudo opm install opm && sudo opm install && sudo opm update vanessa-runner" - ./tools/linux/travistest.sh ./features/Core/FeatureReader/ - sudo docker exec -u ubuntu "$(cat /tmp/container_id)" /bin/bash -c "cd /home/ubuntu/code; DISPLAY=:1.0 sudo opm run initib file --buildFolderPath ./build" @@ -106,7 +106,7 @@ jobs: - sudo docker ps && sleep 5 - sudo docker run -d -p 4040:4040 --link "$(cat /tmp/container_id)":http wernight/ngrok ngrok http http:6080 > /tmp/container_idngrok - sleep 5 && echo $(curl -s http://127.0.0.1:4040/status | grep -P "http://.*?ngrok.io" -oh)"/vnc_auto.html" - - sudo docker exec -u ubuntu "$(cat /tmp/container_id)" /bin/bash -c "cd /home/ubuntu/code; DISPLAY=:1.0 wget -q --continue -O /tmp/oscript.deb http://oscript.io/downloads/night-build/onescript-engine_1.0.21_all.deb && sudo dpkg -i /tmp/oscript.deb" + - sudo docker exec -u ubuntu "$(cat /tmp/container_id)" /bin/bash -c "cd /home/ubuntu/code; DISPLAY=:1.0 wget -q --continue -O /tmp/oscript.deb http://oscript.io/downloads/latest/onescript-engine_1.0.21_all.deb && sudo dpkg -i /tmp/oscript.deb" - sudo docker exec -u ubuntu "$(cat /tmp/container_id)" /bin/bash -c "cd /home/ubuntu/code; DISPLAY=:1.0 sudo opm install opm && sudo opm install && sudo opm update vanessa-runner" - sudo docker exec -u ubuntu "$(cat /tmp/container_id)" /bin/bash -c "cd /home/ubuntu/code; DISPLAY=:1.0 sudo opm build ./" - sudo chown $USER -R ./ @@ -123,7 +123,7 @@ jobs: - "add.7z" - "add-*.ospx" - "add.tar.bz2" - file_glob: "true" + file_glob: "true" skip_cleanup: true on: tags: true diff --git a/F.A.Q.MD b/F.A.Q.MD index 783c28727..21ca01056 100644 --- a/F.A.Q.MD +++ b/F.A.Q.MD @@ -2,18 +2,18 @@ 1. Появляется ошибка, в которой есть текст: "Неизвестный идентификатор формы". Это означает, что есть два или более epf файла, у которых совпадает поле **Имя** (это которое находится около Синонима и Комментария). -1. При открытии внешних обработок могут появляться окна с предупреждениями безопасности. +2. При открытии внешних обработок могут появляться окна с предупреждениями безопасности. * Если вы используете версию платформы 8.3.9.2033 или новее, тогда может появиться окно **Предупреждение безопасности**. * Подробно этот механизм описан [здесь](http://its.1c.ru/db/v838doc#bookmark:dev:TI000001871). * Решение описано по [ссылке](https://github.com/xDrivenDevelopment/precommit1c#%D0%94%D0%BB%D1%8F-%D0%BA%D0%BE%D1%80%D1%80%D0%B5%D0%BA%D1%82%D0%BD%D0%BE%D0%B9-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D0%BD%D0%B0-1%D0%A1-%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8-8392016-%D0%B8-%D1%81%D1%82%D0%B0%D1%80%D1%88%D0%B5) * Кратко - Если хотите выключить этот механизм для всех баз - пропишите в файле conf.cfg строку: **DisableUnsafeActionProtection=.*** -1. При открытии `bddRunner` или `xddTestRunner` появляются сообщения `Неизвестный идентификатор плагина: <ЗагрузчикКаталога> при попытке загрузить тесты` +3. При открытии `bddRunner` или `xddTestRunner` появляются сообщения `Неизвестный идентификатор плагина: <ЗагрузчикКаталога> при попытке загрузить тесты` Возможно, запущено 1С:Предприятие без пользователей. В этом случае 1С не применяет настройки безопасного режима. Нужно создать хотя бы одного пользователя, снять у него флаг "Защита от опасных действий" и запустить 1С:Предприятие для этого пользователя. - -1. При интерактивном запуске не загружаются и не выполняются фичи, открывается только форма `bddRunner` + +4. При интерактивном запуске не загружаются и не выполняются фичи, открывается только форма `bddRunner` Несколько вариантов: @@ -95,11 +95,11 @@ * Можно поставить сценарию тег - и использовать теги фильтры * Да пусть падает - тем более если он не реализован - то он будет желтым, а если реализован - тогда почему он падает? -10. Как запустить фичу из поставки VB у себя в базе? - * Большинство фич, которые идут в поставке VB, требуют, чтобы их запускали в специальной служебной базе. +10. Как запустить фичу из поставки Vanessa.ADD у себя в базе? + * Большинство фич, которые идут в поставке Vanessa.ADD, требуют, чтобы их запускали в специальной служебной базе. * Надо собрать служебную базу. Для этого надо загрузить CF из (**.\add\lib\CF\83**) * Надо руками в базе установить константу **Путь к Vanessa ADD** - это полный путь к обработке **bddRunner.epf** включая имя файла - * Надо открыть в базе VB + * Надо открыть в базе Vanessa.ADD * Надо указать тег исключение **IgnoreOnCIMainBuild** (список исключаемых тегов) * Для ОФ надо ещё указать тег **IgnoreOnOFBuilds** * После этого можно загружать все фичи из каталога фич и запускать на выполнение. @@ -272,7 +272,7 @@ * Можно просто установить текст в поле отбора: * И в таблице "КомпоновщикНастроекПользовательскиеНастройкиЭлемент0Отбор" из выпадающего списка с именем "КомпоновщикНастроекПользовательскиеНастройкиЭлемент0ОтборЛевоеЗначение" я выбираю по строке 'Контрагент.Юр/Физлицо' -29. Можно в отчет аллюр передавать дополнительные данные для отображения в шаге? [Источник](https://gitter.im/silverbulleters/vanessa-behavior?at=5bade0b8aedb375b9c5c1669) +29. Можно в отчет аллюр передавать дополнительные данные для отображения в шаге? **Решение** diff --git a/README.md b/README.md index 526b2c9d0..7ec6f3d3f 100644 --- a/README.md +++ b/README.md @@ -101,7 +101,7 @@ Vanessa-ADD является наследником 2-х продуктов - [x * соответствие концепции TDD - "тестирование до кода" в части модульных тестов (юнит-тестов) * соответствие концепции "всё есть код" в части любых тестов и необходимых для этого данных -Остальные продукты в зоне "Качество 1С решений" исповедуют другие принципы, более подробно смотрите [Историю развития тестирования 1С решений](https://silverbulleters.org/blog/vanessa-testing-history), поэтому бессмыслено сравнивать функциональность разных продуктов, если они реализованы просто для разных целей. +Остальные продукты в зоне "Качество 1С решений" исповедуют другие принципы, поэтому бессмысленно сравнивать функциональность разных продуктов, если они реализованы просто для разных целей. ## Как помочь проекту diff --git a/doc/history.MD b/doc/history.MD new file mode 100644 index 000000000..4402bca41 --- /dev/null +++ b/doc/history.MD @@ -0,0 +1,673 @@ +# v5.8.0 Многострочный текст Gherkin + Новые дымовые + Еще больше ускорения + Исправлены ошибки + +## BDD + +- Поддержка многострочного текста Gherkin #426 + +- Значительно упрощен текст шагов, формируемых из кнопконажималки + - все для удобства пользователей и повышения читаемости фич + - например, значения для таблиц в кнопконажималке формируются без лишних апострофов и т.п. + +- Очередное значительное улучшение производительности #411 для следующих блоков + - многократное ускорение чтения фич + - работа с макетами + - работа со скриншотами + - Обработка записи журнала действий пользователя и генерации текста временной фичи + +## Дымовые тесты + +- Новые дымовые тесты проверки общих модулей и подсистем #387 +- Новые дымовые тесты по бизнес-процессам #409 #412 +- Исправлены различные ошибки + +## BDD (прочее) + +- Добавлена опция показа подробных отладочных сообщений в логе выполнения Ванессы #424 +- Улучшен сбор информации о процессах 1С #425 + - Метод Ванесса.ПолучитьМассивPIDОкон1С и аналогичный метод плагина "УправлениеПриложениями" научился собирать процессы 1С по заголовку, что полезно для отслеживания процессов, связанных с одной базой +- Заменено наименование "Vanessa Behavior" на "Vanessa.ADD" #383 #384 +- Исправлено для отчетов Allure + - В отчете Allure пройденные тесты стали отображаться серым цветом (как skipped) #418 + - В отчет Allure не добавлялись скриншоты с ошибками при падении сценария #423 +- Исправлено падение шага `Тогда таблица "" содержит строки:` в случае наличия похожих заголовков в таблице #417 +- Исправлено - Некорректно обрабатывается шаг по нажатию кнопки выбора в таблице у поля составного типа #427 +- Исправлено - Затираются параметры подключения TestClient #419 #421 + +## TDD + +- Исправлено - в синхронном режиме сломались отчеты в пакетном режиме в 5.7.0 #414 #416 +- Исправлен сломавшийся алгоритм определения поддержки асинхронных вызовов #413 +- Устранено периодическое падение некоторых тестов #54 +- Код тестовой конфигурации приведен в соответствии со стандартом именования общих модулей + +## Плагины + +- УФ+ОФ: Утверждение `Содержит` из плагина 'УтвержденияBDD' научилось проверять многострочные строки + - например, сразу выдается, какая именно подстрока не найдена, вместо указания факта несовпадения сравниваемых строк + + +# v5.7.0 Ускорение, новые и доработанные дымовые, новые плагины (в т.ч. по созданию данных), потоковый вывод в отчеты Allure и JUnit + +В код релиза внесены доработки от **20** человек !! + + - Контрибьюторы проекта выполнили огромное количество доработок. + +- Дополнительно коллега Владимир Литвиненко выпустил большой цикл статей по Vanessa.ADD на Инфостарт-е - 1-я статья https://infostart.ru/public/969637 и т.д. + + - Владимир, еще раз огромнейшее спасибо от всех пользователей и соучастников! + +- Для BDD- и TDD-части, а также для дымовых тестов реализован потоковый вывод в файлы отчетов (junit и Allure) по мере выполнения фич или тестов #389 #393 #399 + - важно для борьбы с зависаниями тестов/фич и анализа возникающих проблем + +- Значительно дополнена и актуализирована документация проекта по дымовым тестам, BDD- и TDD-частям - #11 #366 #372 #380 #330 #334 и т.д. + - расширен FAQ, добавлено много новых ответов +- Поддержана совместимость с 8.3.5 (полностью) и 8.2 (частично) #357 #336 #173 #359 + +## Новые плагины - и для BDD, и для TDD + +- Новый плагин "Заглушки" для генерации данных на лету #381 +- Плагин "Движения документа" для проверки проведения и сравнения движений документа #325 #302 +- Плагин "ИнтернетПочта" #394 #397 #398 +- Плагин "ИтераторМетаданных" - используется для анализа метаданных, например, в дымовых тестах по метаданным (см. ниже) +- Плагин "ЗагрузчикПользовательскихНастроек" для BDD - Загрузка глобальных переменных сохраняемого контекста и настроек из внешнего файла #343 #346 + +## Дымовые тесты + +- Дымовые тесты открытия форм научились работать через тест-клиент - решена проблема зависания на модальных окнах #403 + - доработаны в рамках Enterprise-поддержки +- Новые дымовые тесты + - по метаданным plugins #360 #371 #365 #361 https://infostart.ru/public/947305 + - по проверке макетов СКД #374 #375 +- Добавлена возможность настройки через json-файлы для дымовых тестов ввода на основании #407 + - доработаны в рамках Enterprise-поддержки + +Дополнения/исправления: +- Доработаны дымовые тесты для иерархических справочников #402 +- Не работает исключение при указании полного пути исключаемой формы в json-файле настройки #376 #392 +- Исправлены ошибки дымовых тестов ввода на основании #340 #396 + +## Генерация данных + +- Новый плагин "Заглушки" #381 +- Добавлена кнопка "Загрузить макет в базу" для обычного приложения #326 + +Исправления/дополнения: +- Определение типа маршрута бизнес процесса. #354 +- Добавлена выгрузка/загрузка стандартного реквизита "ТипЗначения" для ПВХ #338 +- Нельзя загрузить Справочник "Банковские счета" из-за неверной работы с владельцем #200 + +## BDD + +- Сохранение отчета Allure сразу после выполнения сценария, а после выполнения фичи #399 +- Загрузка глобальных переменных сохраняемого контекста и настроек из внешнего файла #343 #346 +- Заголовки форм сравниваются точнее, в т.ч. и по шаблонам со звездочкой #370 #367 +- Доработка подключения тест-клиента #351 #352 - например, для передачи контекста сохраняемых переменных +- Полезные функции добавления произвольных данных в отчет Allure для использования в реализации собственных шагов #334 #330 +- Новый шаг ожидания завершения фонового задания и закрытия формы длительной операции (БСП) #333 +- Новый шаг для работы с почтой "Когда я отвечаю на это сообщение" #404 +- Возможность указания путей запуска SikuliX разными способами #345 #355 + +Исправления/дополнения: +- Периодический баг при использовании нескольких библиотек #327 +- Исправлено - Шаг "И Я закрыл все окна клиентского приложения кроме "Нужное окно"" не всегда закрывает все окна #406 +- Исправлено ошибка - шаг "Когда я удаляю все элементы Справочника", в котором нет иерархии, выдает ошибку: "Поле не найдено ЭтоГруппа" #230 #390 +- Заполнение поля КаталогПроекта по-умолчанию #363 #369 +- Исправлено очень медленное выполнение шага "в поле с именем 'ИмяПоля ввожу значение глобальной переменной "ИмяПеременной" #349 #350 +- Исправлены проблемы в библиотечном шаге "я делаю паузу 2 секунды" #337 +- Исправлено периодическое падение шага `Ожидаем завершения фонового формирования отчета в течение "10" секунд` #329 +- Исправлено: Не сохраняются (некорректно читаются из сохраненных настроек) пути к библиотекам шагов #401 + +## TDD + +- Формирование результатов тестов на ходу, по мере выполнения тестов #389 +- Потоковый вывод результатов тестов #393 +- Исправления для работе в английской локализации #385 + +Дополнения/исправления: +- Ошибка при инициализации настроек на сервере #386 +- ОФ: Ошибка при открытии обозревателя TDD #358 +- Исправлено - УФ: из формы xddTestRunner нельзя открыть внешний инструмент при включенном режиме асинхронности #328 + +## Прочее + +- Исправлены проблемы кода, выявленные с помощью "Sonar 1C (BSL) Plugin" #331 +- очень много задач доработаны в рамках Enterprise-поддержки клиентов + + +# v5.6.0 Ускорение + иерархия тестов для Allure + документация + +## Значительное ускорение работы продукта + + - Ускорение работы продукта при чтении фич и файлов шагов, выполнении сценариев, генерации шагов #320 + +- Решены многие из накопленных технических долгов + + - в т.ч. и проблемы от SonarBSL #255 + + - Серьезно упрощена работа с настройками BDD в плагине "LoadSettings" #319 + + - Плагин "Регулярные выражения" #48 #311 #317 + - Плагин "ГенераторОтчетовAllureXMLВерсия2" #294 + +## Генератор данных + + - СериализаторMXL - Доработана до рабочего состояния загрузка данных регистра бухгалтерии. #313 + + - Исправлено: Нельзя сохранить макет в файл в асинхронном режиме #250 + +## TDD и Дымовые тесты + + - Удобная 3-уровневая группировка тестов, в т.ч. и дымовых тестов, в отчете Allure с помощью нового плагина "ГенераторОтчетовAllureXMLВерсия2" #294 + + - Исправлена ошибка использования json-файлов настройки дымовых тестов #321 + +## BDD + + - Открытие фичи в редакторе VSCode на конкретной строке фичи из окна фич по команде контекстного меню #290 + + - Исправлен парсинг фича файла с учетом текста описания сценария #56 #323 + + - Правильный выбор в окне выбора типов и других специальных модальных окнах 1С #289 #273 + + - Добавлен дополнительный поиск в ПолучитьЗначениеИзКонтекстаЕслиЭтоВозможно() #316 + + - Добавление библиотечого шага "Я открываю основную форму объекта ЗначениеОбъекта" #297 + + - Показ важных сообщений в логе командной строки #301 + - При запуске проверяется правильность настройки библиотек #193 + +## Документация + +Серьезно расширена документация. Смотрите каталог [docs](./docs/readme.md) + + - В FAQ добавлено описание Ванесса.ПроверитьХХХ() и хдд.ПроверитьХХХ() в удобочитаемом виде #140 + - добавлены описания многих плагинов + + - Портирование документации по xUnit #306 + - Перенести документацию из Wiki xUnitFor1C в формате markdown в папку #76 + - и т.п. + +## Прочее + + - Исправлено: При `opm run cepf` не удаляются старые epf-бинарники, если для них нет соответствующего каталога с исходниками #113 + - Исправлено: Неверно собирается файл шагов при выполнении opm run cepf #291 + + - Исправлены прочие ошибки, в т.ч. #308 + + +# v5.5.5 Доработки дымовых + TDD-браузера + +## Дымовые тесты + ++ Исправлена ошибка удаления существующих объектов при запуске дымовых https://github.com/silverbulleters/add/issues/293 ++ Дымовые тесты выдают ошибку, если в json-файле отсутствует ключ "ПропускаемыеИсключения" https://github.com/silverbulleters/add/issues/296 + +## TDD + ++ Исправлено: Не работает простая перегрузка для перегрузки текущего теста, а требуется перезагрузка всего браузера тестов https://github.com/silverbulleters/add/issues/288 ++ Доработана загрузка тестов из истории для случае асинхронного режима https://github.com/silverbulleters/add/issues/303 ++ Удален встроенный в конфигурацию xUnitFor1C https://github.com/silverbulleters/add/issues/304 + +## BDD + ++ Исправлена проблема неверных файлов шагов после установки релиза silverbulleters/add#291 + +[Подробное описание изменений релиза v5.5.5](https://github.com/silverbulleters/add/milestone/8?closed=1) + +Изменения/коммиты после последнего релиза 5.5.5: +https://github.com/silverbulleters/add/compare/5.5.0...5.5.5 + +# v5.5.0 Асинхронность TDD (и дымовых) + Дымовые тесты + Генератор данных + новые возможности и шаги в BDD + +## Поддержка асинхронности в tdd-части продукта + +* Дымовые тесты научились работать с любыми конфигурациями 1С, в т.ч. и с теми, в которых запрещены синхронное вызовы #5 +* tdd-часть продукта научилась работать с любыми конфигурациями 1С, в т.ч. и с теми, в которых запрещены синхронное вызовы #5 +* Поддержка асинхронного режима работы 1С #269 + +## Дымовые тесты + +* УФ: Доработаны дымовые тесты #277 + * переделан тест для существующих элементов справочника + * сначала пытаемся найти существующий элемент и открыть его форму + * если не удалось найти, только тогда создаем новые пустые элементы + * автоматически пропускаются типовые обработки, при открытии которых получаем ошибку `Обработка не предназначена для непосредственного использования` + * научились правильно отрабатывать кейс, когда при открытии формы может происходить подмена формы и открытие другой формы + * исключена ошибка падения тестов, когда удаление элементов может быть запрещено или нет прав на удаление +* Пропуск форм, при открытии которых выдан определенный текст исключения #283 + * добавлен отдельный ключ `ПропускаемыеИсключения` в json-файле настройки +* Для дымовых тестов открытия форм конфигурации добавлена проверка на наличии полного имени формы в списке исключений #236 + * спасибо @AnatoliyBritko + +## Генератор данных + +* Научились загружать наборы записей регистров #258 #267 #272 #282 + * регистров накопления + * регистров бухгалтерии + * регистров расчета + + * спасибо @asheichenko + +* Ошибка в проверке типов параметров УтвержденияПроверкаТаблиц.ПроверитьРавенствоТаблиц #275 + * спасибо @yehorh +* Добавлена сериализация и десериализация данных с помощью json. #260 + * спасибо @pumbaEO + +## Новые плагины + +* Плагин для управления приложениями `УправлениеПриложениями` - запуск, завершение #162 #261 + +## Проверка поведения (BDD) + +* Добавлена возможность создавать сложные структуры сценариев со вложенными сценариями и параметрами #263 + * спасибо @PavelVir + +* Новые шаги запуска команд на базе плагина `УправлениеПриложениями ` #261 + * `Я выполняю команду "НужноеПриложение" с параметрами "несколько параметров"` + * `Я сообщаю вывод команды "НужноеПриложение"` + * `я вижу в консоли вывод "вывод приложения"` + * `Код возврата равен 0` + * `установлен OneScript` + +* Новые и доработанные шаги загрузки из макета #224 #279 : + * Новый шаг `я загружаю макет "Макет" с переменными` + ```gherkin + И я загружаю макет "Макет" с переменными: + | ИмяПеременнойИзМакета | + ``` + или другой вариант + ```gherkin + И я загружаю макет "Макет" с переменными: + | ИмяПеременнойИзМакета | НовоеИмяПеременнойВКонтексте | + ``` + * Все шаги загрузки из макетов научились загружать файлы макетов из каталога проекта, а не только из макета внешней обработки + * Основной шаг загрузки из макета `я загружаю макет "Макет"` + * Шаг `я создаю fixtures по макету "Макет"` считается устаревшим + +* УФ: Добавление автопоказа отчета allure - по отдельной команде или через флаг в настройках #233 #245 + +* Набор шагов и методов для работы с Fake-SMTP-Server для тестирования отправки почты #278 #280 + * [Документация](https://github.com/silverbulleters/add/blob/master/features/libraries/%D0%9F%D0%BB%D0%B0%D0%B3%D0%B8%D0%BD%D1%8B/step_definitions/README.md) + * спасибо @KrapivinAndrey + +* Новые и доработанные шаги работы с БД #251 + ```gherkin + Когда в базе нет элементов справочника "Справочник1" с указанными в таблице наименованиями + | Элемент1 | + | Элемент2 | + И Я создаю элементы справочника "Справочник1" с указанными в таблице наименованиями + | Элемент1 | + | Элемент2 | + И в базе есть элементы справочника "Справочник1" с указанными в таблице наименованиями + | Элемент1 | + | Элемент2 | + ``` + +* Новые шаги для работы с БД #258 #267 #272 #282 + + ```gherkin + Когда в метаданных есть РегистрСведений "РСПодчиненРегистраторуПериодический" + И я удаляю все записи РегистрСведенийПодчиненРегистратору "РСПодчиненРегистраторуПериодический" + И в базе нет записей РегистрСведений "РСПодчиненРегистраторуПериодический" + Тогда В базе появилась хотя бы одна запись РегистрСведений "РСПодчиненРегистраторуПериодический" + ``` + + ```gherkin + Когда в метаданных есть РегистрНакопления "РегистрНакопленияОбороты" + И я удаляю все записи РегистрНакопления "РегистрНакопленияОбороты" + И в базе нет записей РегистрНакопления "РегистрНакопленияОбороты" + Тогда В базе появилась хотя бы одна запись РегистрНакопления "РегистрНакопленияОбороты" + ``` + + ```gherkin + Когда в метаданных есть РегистрБухгалтерии "РегистрБухгалтерии1" + И я удаляю все записи РегистрБухгалтерии "РегистрБухгалтерии1" + И в базе нет записей РегистрБухгалтерии "РегистрБухгалтерии1" + Тогда В базе появилась хотя бы одна запись РегистрБухгалтерии "РегистрБухгалтерии1" + ``` + + ```gherkin + Когда в метаданных есть РегистрРасчета "РегистрРасчета1" + И я удаляю все записи РегистрРасчета "РегистрРасчета1" + И в базе нет записей РегистрРасчета "РегистрРасчета1" + Тогда В базе появилась хотя бы одна запись РегистрРасчета "РегистрРасчета1" + ``` + +* Исправлены небольшие проблемы при генерации файла шагов +* Флаг "Создавать области при генерации кода" включен по умолчанию при генерации файла шагов #234 +* Файлы VBParamsXXX.json теперь полностью соответствуют стандарту JSON #256 +* Доработана совместимость с 8.2 #261 +* Доработана документация #244 #97 #129 + * В FAQ добавлены полезные вопросы и ответы #129 + +### Создание авто- и видео-инструкций + +* Обновлена основная документация MakeAutoVideo.md #270 +* Исправление ошибок при записи видео #257 #259 #265, в т.ч.: + * Каталог tools/VideoTools включен в поставку пакета #268 + * При загрузке настроек видео по умолчанию нужно устанавливать каталог для временных файлов видео не в каталоге ADD +* спасибо @ZhdanovR + +## TDD прочее + +* TDD - Научились читать json-файлы настройки с комментариями #276 +* TDD - Возможность получения пути к файлу обработки текущего теста или шага + * как при выполнении тестов, + * так и при их загрузке (в `ЗаполнитьНаборТестов` или `ПолучитьСписокТестов`) #74 #246 +* Исправлена ошибка открытия xddTestRunner на 8.2 #159 + + +# v5.4.0 Управление дымовыми тестами + Улучшение загрузки тестов/фич + Доработаны шаги + +Список изменений: + +## Дымовые тесты + +- Новый инструмент для управления дымовыми тестами #158 #237 + +## Выполнение фич и тестов + +- TDD: Теперь можно загружать тесты, у которых имя файла и внутреннее имя обработки не совпадают #208 #182 +- BDD: Теперь можно загружать шаги из файлов фич, у которых имя файла шага и внутреннее имя обработки не совпадают #216 +- BDD: При генерации файла обработки приводим имя файл в нормализованное имя, совпадающее с внутренним именем обработки #239 + +## Шаги для фич (BDD) +- Доработка поиска активного окна, доработка указания при выборе из списка #229 +- Использовение переменных контекста через "$ИмяПеременнойКонтекста$" в сценарии - например, `И я буду выбирать внешний файл "C:\repo\$ИмяФайла$"` #240 #238 +- Доработка для отчета cucumber.json - прикрепления файла скриншота к отчету #231 + +## Генератор данных + +- Исправлена ошибка загрузки макетов в режиме совместимости 8.2 #212 #242 + +[Подробное описание изменений релиза v5.4.0](https://github.com/silverbulleters/add/milestone/5?closed=1) + +Изменения/коммиты после последнего релиза 5.3.1: +https://github.com/silverbulleters/add/compare/5.4.0...5.3.1 + +# v5.3.1 Внешние инструменты + исправления - Генератор макетов + Английская локализация + Дымовые тесты + браузер фич + +Список изменений: + +## Генератор данных ++ Ошибка генерации данных, если у пользователя недостаточно прав на создание элементов справочника #205 ++ Исправлена ошибка загрузки "Реквизит недоступен для элемента" #197 ++ Ошибка генератора "Ошибка установки значения свойства 'ТипЗначения': Тип не является подмножеством типа значений плана видов характеристик;" #203 ++ Задвоение элементов при загрузке предопределенных элементов #181 + +## Английская локализация ++ В английской локализации не загружаются дымовые тесты #207 + +## Внешние инструменты ++ ОФ+УФ: Возможность открытия внешних инструментов в bddRunner аналогично xddTestRunner #209 ++ Добавлены исходники внешних инструментов из tools/epf/utils #227 ++ Добавлен каталог tools в поставку add #198 #228 + +## Дымовые тесты ++ Исправлено не очень частая проблема: зависание дымовых тестов из-за постоянного роста массива представлений основных форм #217 ++ Исправлено: ошибочно исключались некоторые объекты (обработки/отчеты) при запуске дымовых тестов #226 + +## Прочее ++ BDD: В ОФ в форме настроек добавлен каталог проекта #202 ++ Добавлено создание файла релиза add-x.x.x.zip при сборке пакета продукта #210 ++ Исправлено: При пакетном запуске не загружаются и не выполняются фичи, открывается только bddRunner #222 ++ Исправлено: Очищается папка проекта, если не указать --xddExitCodePath #213 + +[Подробное описание изменений релиза v5.3.1](https://github.com/silverbulleters/add/milestone/3?closed=1) + +Изменения/коммиты после последнего релиза 5.1.1.0: +https://github.com/silverbulleters/add/compare/5.1.1.0...5.3.1 + +# v5.1.1.0 Генератор данных + работа в обычном приложении + +Список изменений: + +Генератор данных: ++ Исправлено: Ошибка: реквизит недоступен для группы #188 ++ Исправлено: Задвоение документов при указании ссылки в макете #183 + +ОФ: ++ Исправлено: В ОФ формируется неверное время в отчете allure, а в УФ правильное время #195 ++ Исправлено: ОФ: не формируется отчет Аллюр при запуске в bddRunner, а в VB 1.1.131 формируется при тех же настройках #194 + + +[Подробное описание изменений релиза v5.1.1.0](https://github.com/silverbulleters/add/milestone/4?closed=1) + +Изменения/коммиты после последнего релиза 5.1.0.0: +https://github.com/silverbulleters/add/compare/5.1.0.0...5.1.1.0 + +# v5.1.0.0 - Отладка + Дымовые + Генерация данных + Настройка + + +## Отладка + ++ Введена возможность абсолютно штатной отладки кода шагов BDD, тестов TDD и любых плагинов #133 + + штатная отладка в 1С теперь возможна + + для файловых баз + + для клиент-серверных баз, расположенных на одной машине + + +## Проверка поведения - BDD + ++ Портированы изменения из vanessa-behavior 1.1.131 #139 #175 + + Возвращены ранее пропущенные фичи/шаги #112 + + Работа с макетами - каталог `features/libraries/Макеты` + + Работа с выводом текста - каталог `features/libraries/ВыводТекста` + + Открытие форм - каталог `features/libraries/Формы` + + Работа с автоинструкцией - каталог `features/libraries/Автоинструкции` + ++ работа с макетами стала проще. #136 + + При поиске макета в методе "ПолучитьМакетОбработки", если не нашли макет в файле обработки, тогда ищем макет в каталоге проекта и вложенном каталоге "Файлы" + + Если не удалось найти макет в обработке или каталоге, пишем информацию в ЖР + + Исправлена ошибка - неверно работает шаг `Дано Табличный документ формы с именем "" стал равен макету с именем ""` + ++ Ускорение работы инструмента + ++ Появилась возможность указать путь к конкретным фичам через командную строку запуска vanessa-runner, в т.ч. и русские имена файлов и каталогов? #106 + ++ ОФ: Исправлено - При открытии обычной формы bddRunner.epf дерево тестов не строится #143 + ++ Использование абсолютно штатного формата json-файлов в отличие от собственного формата json, ранее введеном в vanessa-behavior + + Исправление чтения настроек из json-файла на платформенное, если возможно. #119 + + Добавлена json-схема для валидации VBParams.json #70 + + В json-файле в качестве ключей могут быть не только идентификаторы #117 #118 + ++ Исправлены критические ошибки из Сонара для bddRunner #57 + ++ исправлены многочисленные мелкие ошибки из наследия vanessa-behavior + + Примеры исправлений: + + Режим асинхронности проверяем только по версии приложения #142 + + Сокращение длинных имен файлов фич #153 + + При первом запуске bdd в базе получаем ошибку #154 + + При загрузке фич возникает ошибка (ADD 5.0.0.124) #179 + + Для фич, запускаемых в режиме самотестирвоания, убрано лишнее переоткрытие формы bddRunner #87 + + и т.п. + + +## Дымовые тесты + ++ Добавлена возможность строгого порядка выполнения любых тестов, в т.ч. и дымовых тестов, а не только сценарных тестов #109 #41 + + есть возможность настроить этот параметр в json-файле настроек дымовых тестов ++ УФ: Добавлена группировка по виду метаданного, виду объекта и по количеству #133 + + в json-файле настроек дымовых тестов + + аналогично ОФ из xUnitFor1C ++ УФ: Добавлена возможность исключения по виду метаданных #133 + + в json-файле настроек дымовых тестов + + аналогично ОФ из xUnitFor1C ++ Вывод сообщений в ЖР регулируется теперь настройкой в конфигурационном файле + + +## Генерация данных + ++ Исправление неверной загрузки уже существующих данных в Генераторе данных #168 #172 ++ Обход ошибки платформы по созданию ключа записи регистра сведений на клиенте #116 + + +## Проверка кодом - TDD, xUnit + ++ Добавлена возможность строгого порядка выполнения любых тестов, в т.ч. и дымовых тестов, а не только сценарных тестов #109 #41 ++ Исправлены критические ошибки из Сонара для bddRunner и xddTestRunner #57 ++ УФ: Исправлена проблема загрузки файлов тестов xUnit, когда есть расхождение между именем файла и именем обработки #146 ++ Добавлена json-схема для валидации xUnitParams.json #71 + ++ Вывод лога тестирования xUnit в лог-файл при пакетном запуске, в т.ч. и через vanessa-runner #81 + + Вывод сообщений о прохождении тестов в лог-файл для возможности передачи в консоль, не дожидаясь завершения сеанса 1С #75 + ++ Портированы последние изменения из xUnitFor1C #80 + + В файле теста можно использовать глобальную экспортную переменную `ПутьКФайлуПолный` + + в нее будет установлен полный клиентский путь к файлу теста, что позволяет обращаться к соседним файлам на клиенте + ++ Новые ключи в json-файле настроек + + "Отладка" - булево + + "ДобавлятьИмяПользователяВПредставлениеТеста" - булево + + "ДелатьЛогВыполненияСценариевВТекстовыйФайл" - булево + + "ИмяФайлаЛогВыполненияСценариев" - пример "$workspaceRoot/build/log-xunit.txt" + + +### Тесты для пользователей в режиме обычных форм и управляемых форм + ++ Тесты для пользователей #165 #148 + + +## Плагины + ++ Новый плагин "Файлы" для работы с файлами, каталогами и их путями #134 ++ Новый плагин по проверке таблиц `УтвержденияПроверкаТаблиц` #49 #73 + + +## Документация + + + Добавлен FAQ: как использовать add после установки через opm install add #83 + + Добавлен FAQ про переход на add из xUnitFor1C и vanessa-behavior #77 + + Использование Ansible для настройки сборочных нод #94 #161 + + Методика работы с объемными исходниками #137 + + +## Прочее + ++ Исправлены ошибки параллельной сборки на Jenklins-сервере #135 ++ Исправление запуска сборки через команды opm #90 + +[Подробное описание изменений релиза v5.1.0.0](https://github.com/silverbulleters/add/milestone/2?closed=1) + +Изменения/коммиты после последнего релиза 5.0.0.124: +https://github.com/silverbulleters/add/compare/5.0.0.124...5.1.0.0 + + +### Vanessa-ADD 5.0.XXX + +* Начало истории Vanessa-ADD - https://github.com/silverbulleters/add + + +### Vanessa-Behavior 1.1.131 +* Исправлена ошибка в шаге: And table "List" contains lines +* Исправлен досадный баг в режиме запрета синхронных вызовов. + + +### 1.1.130 +* При показе сравнения макетов, если в эталоне в ячейке был указан символ *, то и в текущем значении макета будет подставлен символ * +* Доработал шаг "Я перехожу к строке содержащей подстроки". Учел особенности 8.3.12. +* Расширил работу шага. Теперь поддерживается 'Я выбираю из списка "$ИмяПеременной$"' + + +### 1.1.129 +* Обновил перевод. Добавил информации при выводе сообщений о дублях перевода. +* Добавил шаги для ввода выражения в поле таблицы. + + +### 1.1.128 +* Добавил шаг: Затем Я копирую текущий профиль TestClient с установкой параметров +* Исправил сравнения строк когда используется символ * +* Добавил возможность при сравнении таблиц использовать переменные контекста вида $МояПеременная$ +* Добавил параметр в JSON - ПриоритетНастроекПользователя. + + +### 1.1.127 +* Добавил параметр - позволяющий указать свой таймаут для асинхронных шагов. ТаймаутДляАсинхронныхШагов. +* Исправил ошибку загрузки Структуры сценария на английском языке +* Исправил https://github.com/silverbulleters/vanessa-behavior/issues/695 +* Доработал механизм сравнения таблиц. +* Добавил шаг: И в таблице "ТабличнаяЧасть1" я устанавливаю флаг с именем "ТабличнаяЧасть1РеквизитБулево" +* Добавил шаг: И в таблице "ТабличнаяЧасть1" я снимаю флаг с именем "ТабличнаяЧасть1РеквизитБулево" + + +### 1.1.126 +* Добавил генерацию шага, ожидающего закрытия окна, после нажатия кнопки "Провести и закрыть" + + +### 1.1.125 +* Добавил шаг, чтобы можно было переходить к строке таблицы, когда значения заданы с использованием символа * +```Gherkin +И в таблице "Список" я перехожу к строке по шаблону + | Код | Наименование | + | "00000000*" | '*Элемент*2' | +``` +* Теперь при смене активного окна автоматически снимается фиксирование формы для поиска элемента. +* Исправил ошибку, когда web клиент не переподключался. +* Исправил поиск макета в приложенной обработке и в каталоге проекта. Сделал универсально. +* Добавил сброс кеша снипетов шагов при переходе с предыдущих версий. +* Исправил ошибку экранирования апострофа при генерации шага. +* Исправил ошибку в переводе en. +* Исправил перевод шага, когда параметры содержали спецсимволы. + + +### 1.1.124 +* Убрал из epf явное использование СтрШаблон. +* Добавил шаги условий: +```Gherkin +Если таблица "ИмяТаблицы" равна макету "ИмяМакета" тогда +Если таблица "ИмяТаблицы" равна переданной тогда + | 'Имя колонки' | + | 'Значение' | +``` + +* Добавил прикрепление таблиц и макетов к строке шага +* Начал изменять правила поиска элементов на форме. Для поиска элемента формы по имени надо указать !. +* Добавил шаги ввода даты начала месяца +* Добавил cmd и json файлы быстрой проверки на платформе 8.3.11 и 8.3.12. +* Добавил поддержку Вьетнамского языка +* Исправил ошибку, при получении таблицы в которой есть вертикальная черта. + + +### 1.1.123 +* Исправление ошибки работы с флагами. + + +### 1.1.122 +* Обновил help. +*Как узнать детали ошибки.* +*Работа со сценариями на других языках.* +* Добавил шаги для фиксирования формы, в которой надо искать элементы +```Gherkin +И я фиксирую форму "ИмяФормы" +И я отменяю фиксирование формы +``` + + +### 1.1.121 +* Рефактроинг описания шагов +* Добавил возможность показать диалог сравнения таблиц эталона и текущего значения, если этот шаг сравнивал значения таблиц или макетов. +Это делается в форме, которая показывает детали ошибки. + + +### 1.1.120 +* Решение #691 +* Переделал работу с шагами выбора из списка. +Теперь генерируются шаги вида +```Gherkin +И из выпадающего списка "ИмяПоля" я выбираю точное значение "ЗначениеПоля" +И из выпадающего списка "ИмяПоля" я выбираю по строке "ЧастьСтроки" +``` + + +### 1.1.119 +* Добавил шаг для создания каталога +* Добавил шаг для очищения каталога + + +### 1.1.118 +* Подготовка к локализации сообщений. Рефакторинг кода. + + +### 1.1.117 +* Сделал поиск в известных шага также и по описанию. diff --git a/epf/bddRunner/bddRunner.xml b/epf/bddRunner/bddRunner.xml index 8f34a46af..f323eff6d 100644 --- a/epf/bddRunner/bddRunner.xml +++ b/epf/bddRunner/bddRunner.xml @@ -4507,11 +4507,11 @@ - ВерсияVB + ВерсияVanessaADD ru - Версия VB + Версия Vanessa-ADD diff --git a/epf/bddRunner/bddRunner/Ext/Help/ru.html b/epf/bddRunner/bddRunner/Ext/Help/ru.html index 1d393a21a..50d79624a 100644 --- a/epf/bddRunner/bddRunner/Ext/Help/ru.html +++ b/epf/bddRunner/bddRunner/Ext/Help/ru.html @@ -234,9 +234,9 @@

  • Если у вас версия платформы 8.3.8 и выше, тогда вам доступен метод ЗаписатьСодержимоеВФайл().
    Этот метод позволяет сэмулировать сохранение табличного документа в файл. И таким образом его может получить TestManager для обработки.
    Но этот метод не работет, когда TestClient запущен как Web клиент.
    Плюс этот метод не сработает, если табличный документ не доступен для редактирования.

    Поэтому у платформы есть второй метод: ПолучитьТекстОбласти(<Область>).

    Хорошая новость: этот метод позволяет обратиться к нужной ячейке по её адресу и получить её текст.

    Плохая новость: для обхода табличного документа таким способом нужно знать его высоту и ширину.

    Хорошая новость: в режиме Web клиента при вызове УстановитьТекущуюОбласть(<Область>), при попытке выйти за границы макета происходит возврат на его край.
    Таким образом можно нащупать где заканчивается макет, и пользователю необязательно указывать его границы.

    Плохая новость: в тонком клиенте такой трюк не работает. При попытке активизировать ячейку за границей макета - это и проихсодит.

    Поэтому пользователю надо знать границы макета заранее, чтобы прочитать его по ячейкам в тонком клиенте.

  • -
    Как прочитать табличный документ в своём сценарии и сравнить с ожидаемым значением:
    Для чтения макетов VB использует следущие методы:
    ПолучитьТабличныйДокументTestClient - возвращает ТабличныйДокумент
    ПолучитьТабДокИзTestClientКакМассив - возвращает массив

    Вы можете использовать типовые шаги из поставки VB, такие как:
    И Табличный документ "РеквизитТабличныйДокумент" стал равен макету "ИмяМакета"

    И область "R1C1:R10C10" табличного документа "РеквизитТабличныйДокумент" равна макету "ИмяМакета"

    И табличный документ "РеквизитТабличныйДокумент" стал равен:
    | Значение1 | Значение2 |
    | Значение3 | Значение4 |
    +
    Как прочитать табличный документ в своём сценарии и сравнить с ожидаемым значением:
    Для чтения макетов Vanessa.ADD использует следущие методы:
    ПолучитьТабличныйДокументTestClient - возвращает ТабличныйДокумент
    ПолучитьТабДокИзTestClientКакМассив - возвращает массив

    Вы можете использовать типовые шаги из поставки Vanessa.ADD, такие как:
    И Табличный документ "РеквизитТабличныйДокумент" стал равен макету "ИмяМакета"

    И область "R1C1:R10C10" табличного документа "РеквизитТабличныйДокумент" равна макету "ИмяМакета"

    И табличный документ "РеквизитТабличныйДокумент" стал равен:
    | Значение1 | Значение2 |
    | Значение3 | Значение4 |
  • -
    Подведем итог выше сказанного:
    1. Если у вас 8.3.8 и выше (лучше 8.3.10 и выше), тогда вы можете не указывать область чтения макетов.
    VB будет их считывать целиком как в тонком клиенте так и в Web.
    Т.е. вам не придётся делать разные сценарии для тонкого клиента и web клиента.
    Но макет должнен быть "Доступен" пользователю (метод ТекущаяДоступность()).

    2. Если вы хотите сравнить часть макета с эталоном - используйте шаг
        И область "R1C1:R10C10" табличного документа "РеквизитТабличныйДокумент" равна макету "ИмяМакета" или подобные шаги

    3. Если у вас версия платформы меньше 8.3.8 (не рекомендуется), тогда даже перед чтением макета целиком, надо будет указывать область чтения через специальный шаг
       Когда Я задаю параметры чтения области макета "R1C1:R100C20"
    По умолчанию область чтения задана как "R1C1:R30C20" (30 рядов и 20 колонок).
    Важно! Если вы изменили область чтения, то она применится и при чтении следующих табличных документов.
  •  

    +
    Подведем итог выше сказанного:
    1. Если у вас 8.3.8 и выше (лучше 8.3.10 и выше), тогда вы можете не указывать область чтения макетов.
    Vanessa.ADD будет их считывать целиком как в тонком клиенте так и в Web.
    Т.е. вам не придётся делать разные сценарии для тонкого клиента и web клиента.
    Но макет должнен быть "Доступен" пользователю (метод ТекущаяДоступность()).

    2. Если вы хотите сравнить часть макета с эталоном - используйте шаг
        И область "R1C1:R10C10" табличного документа "РеквизитТабличныйДокумент" равна макету "ИмяМакета" или подобные шаги

    3. Если у вас версия платформы меньше 8.3.8 (не рекомендуется), тогда даже перед чтением макета целиком, надо будет указывать область чтения через специальный шаг
       Когда Я задаю параметры чтения области макета "R1C1:R100C20"
    По умолчанию область чтения задана как "R1C1:R30C20" (30 рядов и 20 колонок).
    Важно! Если вы изменили область чтения, то она применится и при чтении следующих табличных документов.

     

     

    14. Как создать автовидеоинструкцию.

    @@ -283,7 +283,7 @@

    Для исключения слайда с заголовком фича файла надо перед строкой, где объявляется имя функциональности написать  #[autodoc.ignore.featureslide]

    -

    7) Исключить финальный слайд, где указана данные по сборке сценария. autodoc.ignore.finalslide +

    7) Исключить финальный слайд, где указана данные по сборке сценария. autodoc.ignore.finalslide

    Для исключения слайда с заголовком фича файла надо перед строкой, где объявляется имя функциональности написать  #[autodoc.ignore.finalslide]

    @@ -307,7 +307,7 @@

    1. Чтобы выбрать язык, на котором вы хотите накликать фичу - надо использовать соответствующую настройку.

    2. Далее, при накликиванни фичи ваш сценарий будет автоматически переводится на выбранный язык. Чтобы работал перевод - должен быть заполнен файл перевода шагов, расположенный тут

    -

    {КаталогVB}\locales\Gherkin\  например en.mxl.

    +

    {КаталогVanessaADD}\locales\Gherkin\  например en.mxl.

    3. Также вам станет досупна кнопка перевода сценария с русского языка на выбранный вами язык.

    4. Также при просмотре дерева известных шагов - вы можете выбрать опцию "Показать шаги на Русском"

    diff --git a/epf/bddRunner/bddRunner/Ext/ObjectModule.bsl b/epf/bddRunner/bddRunner/Ext/ObjectModule.bsl index e30a81a14..00a1e3b33 100644 --- a/epf/bddRunner/bddRunner/Ext/ObjectModule.bsl +++ b/epf/bddRunner/bddRunner/Ext/ObjectModule.bsl @@ -7,7 +7,7 @@ Функция ПолучитьВерсиюОбработки(ДобавлятьНазвание = Истина,ТолькоЦифры = Ложь) Экспорт - Версия = "5.7.0"; + Версия = "5.8.0"; Если ТолькоЦифры Тогда Возврат Версия; @@ -63,28 +63,6 @@ ОбъектПлагина = Неопределено; - //Если ЭтотОбъект.ЭтоВстроеннаяОбработка - // ИЛИ ВстроенаВКонфигурацию = Истина Тогда - // - // ИдентификаторСПрефиксомПодсистемы = Идентификатор; - // ИдентификаторБезПрефиксаПодсистемы = Идентификатор; - // - // Если ЭтоОтчет = Истина Тогда - // МенеджерВидаОбъектов = Отчеты; - // МетаданныеВидаОбъектов = Метаданные.Отчеты; - // Иначе - // МенеджерВидаОбъектов = Обработки; - // МетаданныеВидаОбъектов = Метаданные.Обработки; - // КонецЕсли; - // - // Если НЕ МетаданныеВидаОбъектов.Найти(ИдентификаторСПрефиксомПодсистемы) = Неопределено Тогда - // ОбъектПлагина = МенеджерВидаОбъектов[ИдентификаторСПрефиксомПодсистемы].Создать(); - // ИначеЕсли НЕ МетаданныеВидаОбъектов.Найти(ИдентификаторБезПрефиксаПодсистемы) = Неопределено Тогда - // ОбъектПлагина = МенеджерВидаОбъектов[ИдентификаторБезПрефиксаПодсистемы].Создать(); - // КонецЕсли; - // - //КонецЕсли; - Если ОбъектПлагина = Неопределено Тогда Если ЭтоОтчет = Истина Тогда ОбъектПлагина = ВнешниеОтчеты.Создать(Идентификатор, Ложь); @@ -255,21 +233,6 @@ КонецЕсли; Возврат ""; - - //СисИнфо = Новый СистемнаяИнформация; - //ВерсияПриложения = СисИнфо.ВерсияПриложения; - // - //ВерсияПриложения = СтрЗаменить(ВерсияПриложения,".","-"); - // - //ТипФорм = "OF"; - //Если ОтчетВРежимеУФ Тогда - // ТипФорм = "UF"; - // Если ПараметрыОтчетаУФ.ЕстьПоддержкаАсинхронныхВызовов Тогда - // ТипФорм = "UF" + "_NoSync"; - // КонецЕсли; - //КонецЕсли; - // - //Возврат "(" + ВерсияПриложения + "_" + ТипФорм + ") "; КонецФункции Процедура ОбойтиДеревоДляОтчетаАллюр(Дерево,Фабрика,ТекущаяФича = Неопределено,СписокСценариев = Неопределено,СписокШагов = Неопределено) @@ -348,10 +311,10 @@ ИначеЕсли (СтрСтроки.Тип = "Сценарий") или (СтрСтроки.Тип = "Пример") Тогда Если (СтрСтроки.ДопТип = "Контекст") Тогда - //его не неадо добавлять в отчет, т.к. этот сценарий включается в каждый сценарий + //его не надо добавлять в отчет, т.к. этот сценарий включается в каждый сценарий ИначеЕсли (СтрСтроки.ДопТип = "СтруктураСценария") или (СтрСтроки.Строки.Количество() = 0) Тогда - //его не неадо добавлять в отчет, т.к. этот сценарий явно не выполняется + //его не надо добавлять в отчет, т.к. этот сценарий явно не выполняется ОбойтиДеревоДляОтчетаАллюр(СтрСтроки,Фабрика,ТекущаяФича,СписокСценариев,СписокШагов); Иначе @@ -438,21 +401,8 @@ КонецЕсли; ИначеЕсли СтрСтроки.Тип = "Шаг" Тогда Если СтрСтроки.Родитель.ДопТип = "СтруктураСценария" Тогда - //его не неадо добавлять в отчет, т.к. этот сценарий явно не выполняется + //его не надо добавлять в отчет, т.к. этот сценарий явно не выполняется ОбойтиДеревоДляОтчетаАллюр(СтрСтроки,Фабрика,ТекущаяФича,СписокСценариев,СписокШагов); - Иначе - //ТипStep = Фабрика.Тип("urn:model.allure.qatools.yandex.ru", "step"); - //Шаг = Фабрика.Создать(ТипStep); - //Шаг.name = СтрСтроки.Имя; - //Шаг.title = СтрСтроки.Имя; - // - //Если СтрСтроки.ВремяНачала <> Неопределено Тогда - // Шаг.start = СтрСтроки.ВремяНачала; - // Шаг.stop = СтрСтроки.ВремяОкончания; - //КонецЕсли; - // - //ЗаписатьСтатусВШагИлиСценарий(Шаг,СтрСтроки.Статус); - //СписокШагов.step.Добавить(Шаг); КонецЕсли; Иначе ОбойтиДеревоДляОтчетаАллюр(СтрСтроки,Фабрика,ТекущаяФича,СписокСценариев,СписокШагов); @@ -582,10 +532,10 @@ ИначеЕсли (СтрСтроки.Тип = "Сценарий") или (СтрСтроки.Тип = "Пример") Тогда Если (СтрСтроки.ДопТип = "Контекст") Тогда - //его не неадо добавлять в отчет, т.к. этот сценарий включается в каждый сценарий + //его не надо добавлять в отчет, т.к. этот сценарий включается в каждый сценарий ИначеЕсли (СтрСтроки.ДопТип = "СтруктураСценария") или (СтрСтроки.Строки.Количество() = 0) Тогда - //его не неадо добавлять в отчет, т.к. этот сценарий явно не выполняется + //его не надо добавлять в отчет, т.к. этот сценарий явно не выполняется ОбойтиДеревоДляОтчетаjUnit(СтрСтроки,ЗаписьXML,ДопПараметры,ДанныеФичи); Иначе @@ -614,22 +564,6 @@ Если СтрСтроки.ДопТип = "СтруктураСценария" Тогда ОбойтиДеревоДляОтчетаjUnit(СтрСтроки,ЗаписьXML,ДопПараметры,ДанныеФичи); - Иначе - //Для каждого СтрРезультатПрохожденияТестовШагов Из РезультатПрохожденияТестовСценария.РезультатПрохожденияТестовШагов Цикл - // ТипStep = Фабрика.Тип("jUnit", "step"); - // Шаг = Фабрика.Создать(ТипStep); - // Шаг.name = СтрРезультатПрохожденияТестовШагов.Имя; - // Шаг.title = СтрРезультатПрохожденияТестовШагов.Имя; - // - // Если СтрРезультатПрохожденияТестовШагов.ВремяНачала <> Неопределено Тогда - // Шаг.start = СтрРезультатПрохожденияТестовШагов.ВремяНачала; - // Шаг.stop = СтрРезультатПрохожденияТестовШагов.ВремяОкончания; - // КонецЕсли; - // - // ЗаписатьСтатусВШагИлиСценарий(Шаг,СтрРезультатПрохожденияТестовШагов.Статус); - // - // СписокШагов.step.Добавить(Шаг); - //КонецЦикла; КонецЕсли; Сценарий.Вставить("Статус",СтрСтроки.Статус); @@ -646,21 +580,8 @@ КонецЕсли; ИначеЕсли СтрСтроки.Тип = "Шаг" Тогда Если СтрСтроки.Родитель.ДопТип = "СтруктураСценария" Тогда - //его не неадо добавлять в отчет, т.к. этот сценарий явно не выполняется + //его не надо добавлять в отчет, т.к. этот сценарий явно не выполняется ОбойтиДеревоДляОтчетаjUnit(СтрСтроки,ЗаписьXML,ДопПараметры,ДанныеФичи); - Иначе - //ТипStep = Фабрика.Тип("jUnit", "step"); - //Шаг = Фабрика.Создать(ТипStep); - //Шаг.name = СтрСтроки.Имя; - //Шаг.title = СтрСтроки.Имя; - // - //Если СтрСтроки.ВремяНачала <> Неопределено Тогда - // Шаг.start = СтрСтроки.ВремяНачала; - // Шаг.stop = СтрСтроки.ВремяОкончания; - //КонецЕсли; - // - //ЗаписатьСтатусВШагИлиСценарий(Шаг,СтрСтроки.Статус); - //СписокШагов.step.Добавить(Шаг); КонецЕсли; ИначеЕсли СтрСтроки.Тип = "Каталог" Тогда @@ -938,11 +859,8 @@ КонецЦикла; ЗаписьJSON.ЗаписатьКонецМассива(); - //ЗаписьJson.ЗаписатьКонецОбъекта(); КонецЕсли; - - //статус шага ЗаписьJSON.ЗаписатьИмяСвойства("result"); ЗаписьJson.ЗаписатьНачалоОбъекта(); @@ -985,19 +903,6 @@ КонецЦикла; ЗаписьJSON.ЗаписатьКонецМассива(); - - - //ЗаписьJson.ЗаписатьАтрибут("classname", Сценарий.classname); - //ЗаписьJson.ЗаписатьАтрибут("time", XMLСтрока(Сценарий.time/1000)); - //Если Сценарий.Статус = "Failed" Тогда - // ЗаписьJson.ЗаписатьНачалоЭлемента("failure"); - // ЗаписьJson.ЗаписатьАтрибут("message",Сценарий.message); - // ЗаписьJson.ЗаписатьКонецЭлемента(); - //ИначеЕсли Сценарий.Статус = "Pending" Тогда - // ЗаписьJson.ЗаписатьНачалоЭлемента("skipped"); - // ЗаписьJson.ЗаписатьКонецЭлемента(); - //КонецЕсли; - ЗаписьJson.ЗаписатьКонецОбъекта(); КонецЦикла; @@ -1006,10 +911,10 @@ ЗаписьJson.ЗаписатьКонецОбъекта();//фича ИначеЕсли (СтрСтроки.Тип = "Сценарий") или (СтрСтроки.Тип = "Пример") Тогда Если (СтрСтроки.ДопТип = "Контекст") Тогда - //его не неадо добавлять в отчет, т.к. этот сценарий включается в каждый сценарий + //его не надо добавлять в отчет, т.к. этот сценарий включается в каждый сценарий ИначеЕсли (СтрСтроки.ДопТип = "СтруктураСценария") или (СтрСтроки.Строки.Количество() = 0) Тогда - //его не неадо добавлять в отчет, т.к. этот сценарий явно не выполняется + //его не надо добавлять в отчет, т.к. этот сценарий явно не выполняется ОбойтиДеревоДляОтчетаCucumberJson(СтрСтроки,ЗаписьJson,ДопПараметры,ДанныеФичи); Иначе @@ -1104,21 +1009,8 @@ КонецЕсли; ИначеЕсли СтрСтроки.Тип = "Шаг" Тогда Если СтрСтроки.Родитель.ДопТип = "СтруктураСценария" Тогда - //его не неадо добавлять в отчет, т.к. этот сценарий явно не выполняется + //его не надо добавлять в отчет, т.к. этот сценарий явно не выполняется ОбойтиДеревоДляОтчетаCucumberJson(СтрСтроки,ЗаписьJson,ДопПараметры,ДанныеФичи); - Иначе - //ТипStep = Фабрика.Тип("CucumberJson", "step"); - //Шаг = Фабрика.Создать(ТипStep); - //Шаг.name = СтрСтроки.Имя; - //Шаг.title = СтрСтроки.Имя; - // - //Если СтрСтроки.ВремяНачала <> Неопределено Тогда - // Шаг.start = СтрСтроки.ВремяНачала; - // Шаг.stop = СтрСтроки.ВремяОкончания; - //КонецЕсли; - // - //ЗаписатьСтатусВШагИлиСценарий(Шаг,СтрСтроки.Статус); - //СписокШагов.step.Добавить(Шаг); КонецЕсли; ИначеЕсли СтрСтроки.Тип = "Каталог" Тогда @@ -2120,15 +2012,7 @@ Дерево.Колонки.Добавить("Имя"); Дерево.Колонки.Добавить("Статус"); Дерево.Колонки.Добавить("ПолныйПуть"); - //Дерево.Колонки.Добавить("Каталог"); - //Дерево.Колонки.Добавить("Фича"); - //Дерево.Колонки.Добавить("Сценарий"); - //Дерево.Колонки.Добавить("ЭтоScenarioOutline"); - //Дерево.Колонки.Добавить("ЭтоКонтекст"); - //Дерево.Колонки.Добавить("Примеры"); Дерево.Колонки.Добавить("ИменованныеПараметры"); - //Дерево.Колонки.Добавить("Пример"); - //Дерево.Колонки.Добавить("Шаг"); Дерево.Колонки.Добавить("ЗначенияПараметров"); Дерево.Колонки.Добавить("Снипет"); Дерево.Колонки.Добавить("АдресСнипета"); @@ -2144,7 +2028,6 @@ Дерево.Колонки.Добавить("ШагСценарий"); Дерево.Колонки.Добавить("МассивСценариевЗащитаОтЗацикливания"); Дерево.Колонки.Добавить("ФичаИмеетСвоюEPF"); - //Дерево.Колонки.Добавить("Область"); Дерево.Колонки.Добавить("МассивТегов"); Дерево.Колонки.Добавить("НомерСтрокиВФиче"); @@ -2157,10 +2040,6 @@ Дерево.Колонки.Добавить("ДопТип",Новый ОписаниеТипов("Строка")); Дерево.Колонки.Добавить("ДополнительныеДанные"); - //Дерево.Колонки.Добавить("ВремяНачала"); - //Дерево.Колонки.Добавить("ВремяОкончания"); - //Дерево.Колонки.Добавить("ОписаниеОшибки"); - КонецПроцедуры Процедура ДобавитьШагВМассивТестов(МассивТестов,Снипет,ИмяПроцедуры,ПредставлениеТеста = Неопределено,ОписаниеШага = Неопределено,ТипШагаДляОписания = Неопределено,ТипШагаВДереве = Неопределено) Экспорт diff --git "a/epf/bddRunner/bddRunner/Forms/\320\222\321\213\320\261\320\276\321\200\320\230\320\267\320\262\320\265\321\201\321\202\320\275\320\276\320\263\320\276\320\250\320\260\320\263\320\260/Ext/Form/Module.bsl" "b/epf/bddRunner/bddRunner/Forms/\320\222\321\213\320\261\320\276\321\200\320\230\320\267\320\262\320\265\321\201\321\202\320\275\320\276\320\263\320\276\320\250\320\260\320\263\320\260/Ext/Form/Module.bsl" index 55575529a..406d14dfb 100644 --- "a/epf/bddRunner/bddRunner/Forms/\320\222\321\213\320\261\320\276\321\200\320\230\320\267\320\262\320\265\321\201\321\202\320\275\320\276\320\263\320\276\320\250\320\260\320\263\320\260/Ext/Form/Module.bsl" +++ "b/epf/bddRunner/bddRunner/Forms/\320\222\321\213\320\261\320\276\321\200\320\230\320\267\320\262\320\265\321\201\321\202\320\275\320\276\320\263\320\276\320\250\320\260\320\263\320\260/Ext/Form/Module.bsl" @@ -152,8 +152,6 @@ СтрокаШага.Язык = "ru"; Если ТаблицаПеревода <> Неопределено Тогда - //СтрокаПоиска = НРег(СтрТаблицаИзвестныхStepDefinition.Id); - //СтрокаПоиска = Лев(СтрокаПоиска,Найти(СтрокаПоиска,"(")-1); СтрокаПоиска = СтрТаблицаИзвестныхStepDefinition.СтрокаДляПоиска; СтрокаТаблицаПеревода = ТаблицаПеревода.Найти(СтрокаПоиска,"СтрокаДляПоискаРусский"); @@ -227,11 +225,6 @@ ТаблицаДляПереводаИзвестныхШагов.Колонки.Добавить("ОригиналРусскийОписаниеШага"); ТаблицаДляПереводаИзвестныхШагов.Колонки.Добавить("Перевод"); - - //ЗаполнитьТаблицуДляПеревода(ТаблицаДляПереводаИзвестныхШагов,ДеревоСервер); - - - ДанныеПеревода = Новый Структура; ДанныеПеревода.Вставить("ЯзыкПеревода",ЯзыкГенератораGherkin); @@ -245,8 +238,6 @@ ДанныеПеревода.Вставить("ТаблицаИзвестныхStepDefinition",ТабТаблицаИзвестныхStepDefinition); - - ВременноеИмяФайла = Неопределено; FeatureReader = СоздатьFeatureReader(КаталогИнструментов, ДвДанныеvbFeatureReader, ВременноеИмяФайла); @@ -254,7 +245,6 @@ КешТаблицыПеревода = ЗначениеВСтрокуВнутр(ДанныеПеревода.ТаблицаПеревода); - ЗначениеВРеквизитФормы(ДанныеПеревода.ТаблицаИзвестныхStepDefinition,"ТаблицаИзвестныхStepDefinition"); Возврат ДанныеПеревода.ТаблицаПеревода; diff --git "a/epf/bddRunner/bddRunner/Forms/\320\227\320\260\320\277\320\270\321\201\321\214JSON/Ext/Form/Module.bsl" "b/epf/bddRunner/bddRunner/Forms/\320\227\320\260\320\277\320\270\321\201\321\214JSON/Ext/Form/Module.bsl" index 6f32a4fc5..afb013e8e 100644 --- "a/epf/bddRunner/bddRunner/Forms/\320\227\320\260\320\277\320\270\321\201\321\214JSON/Ext/Form/Module.bsl" +++ "b/epf/bddRunner/bddRunner/Forms/\320\227\320\260\320\277\320\270\321\201\321\214JSON/Ext/Form/Module.bsl" @@ -9,7 +9,7 @@ Процедура ЗаписатьНачалоОбъекта() Экспорт - ТекстJSON = ТекстJSON + + ТекстJSON = ТекстJSON + Разделитель+ ?(ЕстьНачалоЗначения,"",Символы.ПС+ДобавитьОтбивку())+ "{"; @@ -28,7 +28,7 @@ КонецПроцедуры Процедура ЗаписатьНачалоМассива() Экспорт - ТекстJSON = ТекстJSON + + ТекстJSON = ТекстJSON + Разделитель+ ?(ЕстьНачалоЗначения, "", Символы.ПС)+ "["; @@ -48,7 +48,7 @@ КонецПроцедуры Процедура ЗаписатьИмяСвойства(ИмяСвойства) Экспорт - ТекстJSON = ТекстJSON + + ТекстJSON = ТекстJSON + Разделитель+ Символы.ПС+ ДобавитьОтбивку()+ @@ -61,7 +61,7 @@ КонецПроцедуры Процедура ЗаписатьЗначение(Значение) Экспорт - + Если ТипЗнч(Значение) = Тип("Строка") Тогда Значение = СтрЗаменить(Значение, "\", "\\"); Значение = СтрЗаменить(Значение, """", "\"""); @@ -70,7 +70,7 @@ Значение = Формат(Значение,"ЧН=; ЧГ="); Выделение = ""; КонецЕсли; - ТекстJSON = ТекстJSON + + ТекстJSON = ТекстJSON + Выделение+ Значение+ Выделение; @@ -79,7 +79,6 @@ КонецПроцедуры Процедура ОткрытьФайл(ПутьКФайлу, СимволОтбивки) Экспорт - //ФайлJSON = Новый ЗаписьТекста(ПутьКФайлу); ФайлJSON = ПутьКФайлу; ТекстJSON = ""; СимволТаб = СимволОтбивки; @@ -103,7 +102,7 @@ Для Сч=1 По ТекущийУровень Цикл ВремСтрока = ВремСтрока + СимволТаб; КонецЦикла; - + Возврат ВремСтрока; КонецФункции diff --git "a/epf/bddRunner/bddRunner/Forms/\320\230\321\201\321\201\320\273\320\265\320\264\320\276\320\262\320\260\321\202\320\265\320\273\321\214\320\244\320\276\321\200\320\274\321\213/Ext/Form/Module.bsl" "b/epf/bddRunner/bddRunner/Forms/\320\230\321\201\321\201\320\273\320\265\320\264\320\276\320\262\320\260\321\202\320\265\320\273\321\214\320\244\320\276\321\200\320\274\321\213/Ext/Form/Module.bsl" index 875d9d7fb..b0320d8a3 100644 --- "a/epf/bddRunner/bddRunner/Forms/\320\230\321\201\321\201\320\273\320\265\320\264\320\276\320\262\320\260\321\202\320\265\320\273\321\214\320\244\320\276\321\200\320\274\321\213/Ext/Form/Module.bsl" +++ "b/epf/bddRunner/bddRunner/Forms/\320\230\321\201\321\201\320\273\320\265\320\264\320\276\320\262\320\260\321\202\320\265\320\273\321\214\320\244\320\276\321\200\320\274\321\213/Ext/Form/Module.bsl" @@ -215,7 +215,6 @@ СтрокаДерева = НайтиСтрокуДереваСИменемЭлемента(Имя); Если СтрокаДерева = Неопределено Тогда - //ЗаполнитьДеревоФормы(); Возврат; КонецЕсли; @@ -223,7 +222,6 @@ Элементы.ДеревоФормы.ТекущаяСтрока = СтрокаДерева.ПолучитьИдентификатор(); ЗаполнитьТекстШаговПоАктивномуЭлементу(); - Сообщить(Ванесса.ПолучитьТекстСообщенияПользователю("$Найден активный элемент формы$") + " <" + Имя + ">"); КонецЕсли; КонецПроцедуры @@ -453,7 +451,6 @@ Исключение КонецПопытки; - Если ОтображаемыйТекст <> Неопределено Тогда МассивШагов.Добавить("И представление элемента с именем """ + ЭлементФормы.Имя + """ стало равно """ + ОтображаемыйТекст + """"); КонецЕсли; @@ -471,7 +468,6 @@ ЗначениеПоля = ЭлементТаблица.ПолучитьТекстЯчейки(ЭлементФормы.Имя); МассивСтрок = Ванесса.РазложитьСтрокуВМассивПодстрокКлиент(ЗначениеПоля,Символы.ПС); Если МассивСтрок.Количество() <=1 Тогда - //МассивШагов.Добавить("Тогда текст ячейки таблицы """ + ТаблицаВладелец.Имя + """ """ + ЭлементФормы.Имя + """ стал равен """ + ЗначениеПоля + """"); МассивШагов.Добавить("И в таблице """ + ТаблицаВладелец.Имя + """ поле """ + ЭлементФормы.ТекстЗаголовка + """ имеет значение """ + ЗначениеПоля + """"); МассивШагов.Добавить("И в таблице """ + ТаблицаВладелец.Имя + """ поле с именем """ + ЭлементФормы.Имя + """ имеет значение """ + ЗначениеПоля + """"); Иначе @@ -487,12 +483,6 @@ КонецЦикла; МассивШагов.Добавить(ТекстШага); - - //ТекстШага = "Тогда текст ячейки таблицы """ + ТаблицаВладелец.Имя + """ """ + ЭлементФормы.Имя + """ стал равен"; - //Для Каждого СтрокаШага Из МассивСтрок Цикл - // ТекстШага = ТекстШага + Символы.ПС + " | '" + СтрокаШага + "' |"; - //КонецЦикла; - //МассивШагов.Добавить(ТекстШага); КонецЕсли; Исключение @@ -525,7 +515,6 @@ Попытка МассивШагов.Добавить(""); ЗначениеПоля = ЭлементТаблица.ПолучитьТекстЯчейки(ЭлементФормы.Имя); - //МассивШагов.Добавить("Тогда текст ячейки таблицы """ + ТаблицаВладелец.Имя + """ """ + ЭлементФормы.Имя + """ стал равен """ + ЗначениеПоля + """"); МассивШагов.Добавить("И в таблице """ + ТаблицаВладелец.Имя + """ поле """ + ЭлементФормы.ТекстЗаголовка + """ имеет значение """ + ЗначениеПоля + """"); МассивШагов.Добавить("И в таблице """ + ТаблицаВладелец.Имя + """ поле с именем """ + ЭлементФормы.Имя + """ имеет значение """ + ЗначениеПоля + """"); Исключение @@ -546,13 +535,11 @@ Исключение КонецПопытки; - Попытка ТекстРедактирования = ЭлементФормы.ПолучитьТекстРедактирования(); Исключение КонецПопытки; - МассивШагов.Добавить("И элемент формы с именем """ + ЭлементФормы.Имя + """ стал равен """ + ЗначениеПоля + """"); Если ОтображаемыйТекст <> Неопределено Тогда МассивШагов.Добавить("И представление элемента с именем """ + ЭлементФормы.Имя + """ стало равно """ + ОтображаемыйТекст + """"); @@ -633,7 +620,6 @@ КонецЕсли; ИначеЕсли ТипЗнч(ЭлементФормы) = Тип("ТестируемаяДекорацияФормы") Тогда ЗначениеПоля = ЭлементФормы.ТекстЗаголовка; - //МассивШагов.Добавить("И элемент формы """ + ЭлементФормы.ТекстЗаголовка + """ стал равен """ + ЗначениеПоля + """"); МассивШагов.Добавить("И элемент формы с именем """ + ЭлементФормы.Имя + """ стал равен """ + ЗначениеПоля + """"); МассивШагов.Добавить("И у элемента с именем """ + ЭлементФормы.Имя + """ я жду значения """ + ЗначениеПоля + """ в течение 30 секунд"); МассивШагов.Добавить(""); @@ -648,12 +634,10 @@ МассивШагов.Добавить("И я активизирую поле """ + ЭлементФормы.ТекстЗаголовка + """"); МассивШагов.Добавить("И я активизирую поле с именем """ + ЭлементФормы.Имя + """"); - Для Каждого ТекстШага Из МассивШагов Цикл ТекстШагов.ДобавитьСтроку(ТекстШага); КонецЦикла; - Если Язык <> "ru" и ЗначениеЗаполнено(Язык) Тогда Текст = Ванесса.ПеревестиТекст(ТекстШагов.ПолучитьТекст()); ТекстШагов.УстановитьТекст(Текст); diff --git "a/epf/bddRunner/bddRunner/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/epf/bddRunner/bddRunner/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" index e75bc2c42..aa0666018 100644 --- "a/epf/bddRunner/bddRunner/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ "b/epf/bddRunner/bddRunner/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" @@ -500,7 +500,6 @@ ПараметрыФормы = Новый Структура; ПараметрыФормы.Вставить("Язык", Объект.ЯзыкГенератораGherkin); - //ОткрытьФорму("ВнешняяОбработка.аботка.bd.Форма.ИсследовательФормы", ПараметрыФормы,ЭтаФорма); ФормаДобавитьШаг = ПолучитьФорму("ВнешняяОбработка.bddRunner.Форма.ИсследовательФормы", ПараметрыФормы,ЭтаФорма); ФормаДобавитьШаг.Открыть(); КонецПроцедуры @@ -3579,62 +3578,132 @@ Возврат ТабПарам; КонецФункции +// Получает значение переменной из контекста +// РЕКОМЕНДАЦИЯ - похожий метод ВычислитьПеременныеКонтекстаВнутриСтроки +// //проверяет значение на спецсимволы //Если значение вида $ИмяПеременной$, тогда будет возвращено ОбъектКонтекст.ИмяПеременной //ИначеЕсли значение вида $$ИмяПеременной$$, тогда будет возвращено ОбъектКонтекстСохраняемый.ИмяПеременной //ИначеЕсли значение вида $$$ИмяПеременной$$$, это значит, что надо отбросить $$ слева и справа, т.е. символ $ экранирован //Иначе будет возвращено просто значение +// +// Параметры: +// Значение - Строка - <описание параметра> +// +// Возвращаемое значение: +// Произвольный - Исходное значение или значение переменного из контекста или сохраняемого контекста +// &НаКлиенте Функция ПолучитьЗначениеИзКонтекстаЕслиЭтоВозможно(Знач Значение) Экспорт - Если (Лев(Значение,1) = "$") Тогда - Если (Лев(Значение,3) = "$$$") и (Прав(Значение,3) = "$$$") Тогда + УжеВычислили = Ложь; + Если (Лев(Значение, 1) = "$") Тогда + Если (Лев(Значение, 3) = "$$$") и (Прав(Значение, 3) = "$$$") Тогда //это значит, что надо отбросить $$ слева и справа - ЗначениеДляПерехода = Сред(Значение,3); - ЗначениеДляПерехода = Лев(ЗначениеДляПерехода,СтрДлина(ЗначениеДляПерехода)-2); + ЗначениеДляПерехода = Сред(Значение, 3); + ЗначениеДляПерехода = Лев(ЗначениеДляПерехода, СтрДлина(ЗначениеДляПерехода) - 2); Значение = ЗначениеДляПерехода; - ИначеЕсли (Лев(Значение,2) = "$$") и (Прав(Значение,2) = "$$") Тогда - ИмяПеременной = Сред(Значение,3); - ИмяПеременной = Лев(ИмяПеременной,СтрДлина(ИмяПеременной)-2); + УжеВычислили = Истина; + ИначеЕсли (Лев(Значение, 2) = "$$") и (Прав(Значение, 2) = "$$") Тогда + ИмяПеременной = Сред(Значение, 3); + ИмяПеременной = Лев(ИмяПеременной, СтрДлина(ИмяПеременной) - 2); + ПредполагаемоеЗначение = Неопределено; Попытка - ЕстьТакаяПеременная = ОбъектКонтекстСохраняемый.Свойство(ИмяПеременной); + ЕстьТакаяПеременная = ОбъектКонтекстСохраняемый.Свойство(ИмяПеременной, ПредполагаемоеЗначение); Исключение ЕстьТакаяПеременная = Ложь; КонецПопытки; - Если НЕ ЕстьТакаяПеременная Тогда + Если ЕстьТакаяПеременная Тогда + Значение = ПредполагаемоеЗначение; + Иначе //попробуем найти значение по ключу Значение = ПолучитьСохраненноеЗначениеИзКонтекстаСохраняемого(ИмяПеременной); Если Значение = Неопределено Тогда ТекстСообщения = "Не смог по переменной <%1> найти сохраненное значение."; - ТекстСообщения = СтрЗаменить(ТекстСообщения,"%1",ИмяПеременной); + ТекстСообщения = СтрЗаменить(ТекстСообщения, "%1", ИмяПеременной); ВызватьИсключение ТекстСообщения; КонецЕсли; - Иначе - Значение = ОбъектКонтекстСохраняемый[ИмяПеременной]; КонецЕсли; + УжеВычислили = Истина; - ИначеЕсли (Лев(Значение,1) = "$") и (Прав(Значение,1) = "$") Тогда - ИмяПеременной = Сред(Значение,2); - ИмяПеременной = Лев(ИмяПеременной,СтрДлина(ИмяПеременной)-1); + ИначеЕсли Прав(Значение, 1) = "$" Тогда + ИмяПеременной = Сред(Значение, 2); + ИмяПеременной = Лев(ИмяПеременной, СтрДлина(ИмяПеременной) - 1); - Если НЕ ОбъектКонтекст.Свойство(ИмяПеременной) Тогда + ПредполагаемоеЗначение = Неопределено; + Если ОбъектКонтекст.Свойство(ИмяПеременной, ПредполагаемоеЗначение) Тогда + Значение = ПредполагаемоеЗначение; + Иначе Значение = ПолучитьСохраненноеЗначениеИзКонтекста(ИмяПеременной); Если Значение = Неопределено Тогда ТекстСообщения = "Не смог по переменной <%1> найти сохраненное значение."; - ТекстСообщения = СтрЗаменить(ТекстСообщения,"%1",ИмяПеременной); + ТекстСообщения = СтрЗаменить(ТекстСообщения, "%1", ИмяПеременной); ВызватьИсключение ТекстСообщения; КонецЕсли; - Иначе - Значение = ОбъектКонтекст[ИмяПеременной]; КонецЕсли; + УжеВычислили = Истина; КонецЕсли; КонецЕсли; Возврат Значение; КонецФункции +// Вычисляет переменные контекста (со значениями типа "Строка") +// и заменяет на соответствующие значения внутри строки +// +// Пример смотрите в фиче features\Core\FeatureReader\ПроверкаВычисленияПеременных.feature +// +// Сценарий: Вычисление сложного выражения с переменными контекста в обычном параметре-строке +// Когда Я запоминаю строку "Привет" как переменную "ПроверяемаяПеременная" +// Когда Я запоминаю строку "$ПроверяемаяПеременная$" как переменную "ДругаяПроверяемаяПеременная" +// Тогда переменная "ДругаяПроверяемаяПеременная" имеет значение "$ПроверяемаяПеременная$" +// И выражение внутреннего языка "$ДругаяПроверяемаяПеременная$ = $ПроверяемаяПеременная$" Истинно +// +// Параметры: +// Строка - Строка - строка, параметр-шага, в которой может быть использование переменных контекста +// Например, "$ПроверяемаяПеременная$" или "$ГлобальнаяПеременная$" +// или "Контекст.ПроверяемаяПеременная = $ПроверяемаяПеременная$" +// или "$ДругаяПроверяемаяПеременная$ = $ПроверяемаяПеременная$" +// или "$$ДругаяГлобальнаяПеременная$$ = $$ГлобальнаяПеременная$$" +// +// Возвращаемое значение: +// Строка - строка, в которой заменены переменные из контекста и сохраняемого контекста +// +&НаКлиенте +Функция ВычислитьПеременныеКонтекстаВнутриСтроки(Знач Строка) Экспорт + ЭкранированиеВзаменТрехДолларов = "~=$~$=~"; + Результат = СтрЗаменить(Строка, "$$$", ЭкранированиеВзаменТрехДолларов); + Результат = СтрЗаменить(Результат, "$КаталогПроекта$", Объект.КаталогПроекта); + Попытка + Результат = ПолучитьЗначениеИзКонтекстаЕслиЭтоВозможно(Результат); + Исключение + Результат = Строка; + КонецПопытки; + Результат = ВычислитьПеременныеИзКонтекстовВнутриСтроки(Результат, ОбъектКонтекстСохраняемый, "$$"); + Результат = ВычислитьПеременныеИзКонтекстовВнутриСтроки(Результат, ОбъектКонтекст, "$"); + Результат = СтрЗаменить(Результат, ЭкранированиеВзаменТрехДолларов, "$$$"); + Возврат Результат; +КонецФункции + +&НаКлиенте +Функция ВычислитьПеременныеИзКонтекстовВнутриСтроки(Знач Значение, Знач Контекст, Знач РазделительПеременной) + Результат = Значение; + Если Найти(Результат, РазделительПеременной) = 0 Тогда + Возврат Результат; + КонецЕсли; + Для каждого КлючЗначение Из Контекст Цикл + ЗначениеИзКонтекста = КлючЗначение.Значение; + Если ТипЗнч(ЗначениеИзКонтекста) = Тип("Строка") Тогда + ЗначениеДляСтроки = """" + СтрЗаменить(ЗначениеИзКонтекста, """", """""") + """"; + Результат = СтрЗаменить(Результат, РазделительПеременной + КлючЗначение.Ключ + РазделительПеременной, + ЗначениеДляСтроки); + КонецЕсли; + КонецЦикла; + Возврат Результат; +КонецФункции + &НаКлиенте Функция ПолучитьОписаниеСтрокиИзТаблицы(ТабПарам,ИмяТаблицы = Неопределено) Экспорт ОписаниеСтроки = Новый Соответствие(); @@ -4252,7 +4321,8 @@ // При внедрении в конфигурацию с режимом совместимости >= 8.3.6 данную функцию необходимо удалить // &НаКлиенте -Функция СтрШаблон_(Знач СтрокаШаблон, Знач Парам1 = Неопределено, Знач Парам2 = Неопределено, Знач Парам3 = Неопределено, Знач Парам4 = Неопределено) Экспорт +Функция СтрШаблон_(Знач СтрокаШаблон, Знач Парам1 = Неопределено, Знач Парам2 = Неопределено, + Знач Парам3 = Неопределено, Знач Парам4 = Неопределено) Экспорт МассивПараметров = Новый Массив; МассивПараметров.Добавить(Парам1); @@ -4959,20 +5029,21 @@ &НаКлиенте Функция ПолучитьСохраненноеЗначениеИзКонтекста(ИмяПеременной) Экспорт - Если НЕ ОбъектКонтекст.Свойство("СохраняемыеЗначения") Тогда - Возврат Неопределено; - КонецЕсли; - - Возврат ОбъектКонтекст.СохраняемыеЗначения[ИмяПеременной]; + Возврат ПолучитьСохраненноеЗначениеИзКонтекстаВнутр(ОбъектКонтекст, ИмяПеременной); КонецФункции &НаКлиенте Функция ПолучитьСохраненноеЗначениеИзКонтекстаСохраняемого(ИмяПеременной) Экспорт - Если НЕ ОбъектКонтекстСохраняемый.Свойство("СохраняемыеЗначения") Тогда + Возврат ПолучитьСохраненноеЗначениеИзКонтекстаВнутр(ОбъектКонтекстСохраняемый, ИмяПеременной); +КонецФункции + +&НаКлиенте +Функция ПолучитьСохраненноеЗначениеИзКонтекстаВнутр(Контекст, ИмяПеременной) + Если НЕ Контекст.Свойство("СохраняемыеЗначения") Тогда Возврат Неопределено; КонецЕсли; - Возврат ОбъектКонтекстСохраняемый.СохраняемыеЗначения[ИмяПеременной]; + Возврат Контекст.СохраняемыеЗначения[ИмяПеременной]; КонецФункции &НаКлиенте @@ -5890,16 +5961,21 @@ КонецПроцедуры &НаКлиенте -Процедура ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям(ТабДок1, ТабДок2, УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки = Ложь, УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки = Ложь, Знач ДопСообщениеОшибки = "",ДопПараметры = Неопределено) Экспорт +Процедура ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям(ТабДок1, ТабДок2, + УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки = Ложь, + УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки = Ложь, Знач ДопСообщениеОшибки = "", + ДопПараметры = Неопределено) Экспорт УтвержденияПроверкаТаблиц = Плагин("УтвержденияПроверкаТаблиц"); УтвержденияПроверкаТаблиц.ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям( - ТабДок1, ТабДок2, УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки, УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки, - ДопСообщениеОшибки,ДопПараметры); + ТабДок1, ТабДок2, УчитыватьТолькоВидимыеКолонкиИлиДопСообщениеОшибки, + УчитыватьТолькоВидимыеСтрокиИлиДопСообщениеОшибки, ДопСообщениеОшибки,ДопПараметры); КонецПроцедуры -// количествоСозданныхОбъектов учитывает только созданные элементы справочников, документы и пользователей ИБ. Записи регистров сведений не считаются. +// количествоСозданныхОбъектов учитывает только созданные элементы справочников, документы и пользователей ИБ. +// Записи регистров сведений не считаются. &НаКлиенте -Функция СоздатьДанныеПоТабличномуДокументу(ТабличныйДокумент, РежимыЗагрузкиИлиИмяКолонкиЗамещения = Неопределено, ИмяКолонкиЗамещения = Неопределено) Экспорт +Функция СоздатьДанныеПоТабличномуДокументу(ТабличныйДокумент, РежимыЗагрузкиИлиИмяКолонкиЗамещения = Неопределено, + ИмяКолонкиЗамещения = Неопределено) Экспорт Перем Сериализатор; Сериализатор = Плагин("СериализаторMXL"); Данные = Сериализатор.СоздатьДанныеПоТабличномуДокументу(ТабличныйДокумент, РежимыЗагрузкиИлиИмяКолонкиЗамещения, ИмяКолонкиЗамещения); @@ -5917,18 +5993,17 @@ ПомещаемыеФайлы = Новый Массив; ИдентификаторыПлагинов = Новый Соответствие; - ИдентификаторыИменПлагинов = Новый Соответствие; Если Объект.ИспользоватьПрямыеПутиФайлов Тогда ПомещенныеФайлы = Новый Массив; Для каждого ФайлОбработки Из НайденныеФайлы Цикл - ОписаниеПередаваемогоФайла = Новый Структура("Имя", ФайлОбработки.ПолноеИмя); + ПолноеИмяФайла = ФайлОбработки.ПолноеИмя; + ОписаниеПередаваемогоФайла = Новый Структура("Имя", ПолноеИмяФайла); ПомещенныеФайлы.Добавить(ОписаниеПередаваемогоФайла); ИмяПлагина = ФайлОбработки.ИмяБезРасширения; - ИдентификаторыПлагинов.Вставить(ФайлОбработки.ПолноеИмя, ИмяПлагина); - ИдентификаторыИменПлагинов.Вставить(ИмяПлагина, ФайлОбработки.ПолноеИмя); + ИдентификаторыПлагинов.Вставить(ПолноеИмяФайла, ИмяПлагина); КонецЦикла; @@ -5937,20 +6012,21 @@ Для каждого ФайлОбработки Из НайденныеФайлы Цикл - ПомещаемыйФайл = Новый ОписаниеПередаваемогоФайла(ФайлОбработки.ПолноеИмя); + ПолноеИмяФайла = ФайлОбработки.ПолноеИмя; + ПомещаемыйФайл = Новый ОписаниеПередаваемогоФайла(ПолноеИмяФайла); ПомещаемыеФайлы.Добавить(ПомещаемыйФайл); ИмяПлагина = ФайлОбработки.ИмяБезРасширения; - ИдентификаторыПлагинов.Вставить(ФайлОбработки.ПолноеИмя, ИмяПлагина); - ИдентификаторыИменПлагинов.Вставить(ИмяПлагина, ФайлОбработки.ПолноеИмя); + ИдентификаторыПлагинов.Вставить(ПолноеИмяФайла, ИмяПлагина); КонецЦикла; Если ПомещаемыеФайлы.Количество() Тогда - ПараметрыЗавершения = Новый Структура; - ПараметрыЗавершения.Вставить("ИдентификаторыПлагинов", ИдентификаторыПлагинов); - ПараметрыЗавершения.Вставить("ОбработчикОповещения", ДополнительныеПараметры.ОбработчикОповещения); Если Версия836ИлиВыше Тогда + ПараметрыЗавершения = Новый Структура; + ПараметрыЗавершения.Вставить("ИдентификаторыПлагинов", ИдентификаторыПлагинов); + ПараметрыЗавершения.Вставить("ОбработчикОповещения", ДополнительныеПараметры.ОбработчикОповещения); + Выполнить("НачатьПомещениеФайлов(Новый ОписаниеОповещения(""ОбработчикПоискаКлиентскихПлагиновЗавершение"", ЭтаФорма, ПараметрыЗавершения), |ПомещаемыеФайлы, , Ложь, ЭтаФорма.УникальныйИдентификатор)"); Иначе @@ -5980,44 +6056,55 @@ ОписанияПлагиновКлиент = Новый Соответствие; ПодключенныеРанее = Новый Соответствие; - МассивПодключенныхПлагинов = Новый Массив(); Если Не Объект.ИспользоватьПрямыеПутиФайлов Тогда + МассивПодключенныхПлагинов = Новый Массив(); ПодключитьВнешниеОбработкиДляОтладки(Истина, МассивПодключенныхПлагинов); - КонецЕсли; - //Подключим на клиенте для отладки - Для каждого ОбъектПлагина Из МассивПодключенныхПлагинов Цикл - Попытка - ОбъектПлагина.Инициализация(ЭтаФорма); - ОписаниеПлагина = ОбъектПлагина.ОписаниеПлагина(Объект.ТипыПлагинов); - ИмяПлагина = ОписаниеПлагина.Идентификатор; - - ПодключенныеРанее.Вставить(ОписаниеПлагина.Идентификатор, Истина); - Объект.ПлагиныЗагружены = Истина; - Объект.Плагины.Вставить(ОписаниеПлагина.Идентификатор, ИмяПлагина); - КэшФормПлагинов.Вставить(ОписаниеПлагина.Идентификатор, Истина); - СделатьСообщение("Подключен плагин " + ИмяПлагина + " в режиме отладки"); - Исключение - ИнфоОшибки = ИнформацияОбОшибке(); - Если ОбъектПлагина <> Неопределено Тогда - СделатьСообщение("Ошибка подключения плагина "+ОбъектПлагина.Заголовок + ": - |" + ИнфоОшибки.Описание); - Иначе - СделатьСообщение("Ошибка подключения неопределенного плагина: - |" + ИнфоОшибки.Описание); - КонецЕсли; - КонецПопытки; + //Подключим на клиенте для отладки + Для каждого ОбъектПлагина Из МассивПодключенныхПлагинов Цикл + Попытка + ОбъектПлагина.Инициализация(ЭтаФорма); + ОписаниеПлагина = ОбъектПлагина.ОписаниеПлагина(Объект.ТипыПлагинов); + ИмяПлагина = ОписаниеПлагина.Идентификатор; + + ПодключенныеРанее.Вставить(ОписаниеПлагина.Идентификатор, Истина); + Объект.ПлагиныЗагружены = Истина; + Объект.Плагины.Вставить(ОписаниеПлагина.Идентификатор, ИмяПлагина); + КэшФормПлагинов.Вставить(ОписаниеПлагина.Идентификатор, Истина); + СделатьСообщение("Подключен плагин " + ИмяПлагина + " в режиме отладки"); + Исключение + ИнфоОшибки = ИнформацияОбОшибке(); + Если ОбъектПлагина <> Неопределено Тогда + СделатьСообщение("Ошибка подключения плагина "+ОбъектПлагина.Заголовок + ": + |" + ИнфоОшибки.Описание); + Иначе + СделатьСообщение("Ошибка подключения неопределенного плагина: + |" + ИнфоОшибки.Описание); + КонецЕсли; + КонецПопытки; - КонецЦикла; + КонецЦикла; + КонецЕсли; + + // в режиме совместимости 8.3.13 и выше для объекта ОписаниеПереданногоФайла свойство ПолноеИмя вместо Имя + ИспользоватьПолноеИмя = Ложь; + Если ЗагруженныеФайлы.Количество() > 0 Тогда + ИспользоватьПолноеИмя = ЕстьСвойство(ЗагруженныеФайлы[0], "ПолноеИмя"); + КонецЕсли; - ОписанияПлагинов = ПодключитьПлагиныНаСервере(ЗагруженныеФайлы, ПодключенныеРанее); + ОписанияПлагинов = ПодключитьПлагиныНаСервере(ЗагруженныеФайлы, ИспользоватьПолноеИмя, ПодключенныеРанее); Для Каждого ЗагруженныйФайл Из ЗагруженныеФайлы Цикл Объект.ПлагиныЗагружены = Истина; - ИмяПлагина = ИдентификаторыПлагинов[ЗагруженныйФайл.Имя]; + Если ИспользоватьПолноеИмя Тогда + КлючФайла = ЗагруженныйФайл.ПолноеИмя; + Иначе + КлючФайла = ЗагруженныйФайл.Имя; + КонецЕсли; + ИмяПлагина = ИдентификаторыПлагинов[КлючФайла]; - ОписаниеПлагина = ОписанияПлагинов.Получить(ЗагруженныйФайл.Имя); + ОписаниеПлагина = ОписанияПлагинов.Получить(КлючФайла); Если ОписаниеПлагина = Неопределено Тогда Продолжить; КонецЕсли; @@ -6035,7 +6122,6 @@ ОбъектПлагин = Неопределено; ИдентификаторБезПрефиксовПодсистемы = Идентификатор; - //ИдентификаторБезПрефиксовПодсистемы = ПолучитьИдентификаторБезПрефиксаПодсистемы(Идентификатор, Объект.ИспользуемыйПрефиксПодсистемы); Если КэшФормПлагинов.Свойство(ИдентификаторБезПрефиксовПодсистемы) Тогда ОбъектПлагин = КэшФормПлагинов[ИдентификаторБезПрефиксовПодсистемы]; КонецЕсли; @@ -6048,12 +6134,8 @@ // загрузка клиентского плагина "По требованию" ИмяПлагина = Объект.Плагины[Идентификатор]; Попытка - //Если Объект.ЭтоВстроеннаяОбработка Тогда - //ОбъектПлагин = ПолучитьФорму("Обработка." + ДополнитьИдентификаторПрефиксомПодсистемы(ИмяПлагина, Объект.ИспользуемыйПрефиксПодсистемы) + ".Форма", , ЭтаФорма); - //Иначе ОбъектПлагин = ПолучитьФорму("ВнешняяОбработка." + ИмяПлагина + ".Форма", , ЭтаФорма); ОбъектПлагин.Инициализация(ЭтаФорма); - //КонецЕсли; КэшФормПлагинов.Вставить(ИдентификаторБезПрефиксовПодсистемы, ОбъектПлагин); Исключение // TODO добавить поведение при отсутствии управляемой формы у плагина @@ -6303,11 +6385,19 @@ Разделитель = "\"; КонецЕсли; - ИмяВременногоFeature = ПолучитьИмяВременногоФайла("feature"); - ВременныйФайл = Новый Файл(ИмяВременногоFeature); - КаталогВременногоFeature = ВременныйФайл.Путь + "vanessa-add"; + Если ЗначениеЗаполнено(Объект.КаталогПроекта) Тогда + КаталогВременногоFeature = Объект.КаталогПроекта + Разделитель + "features"; + //TODO переделать на одну команду проверки и создания каталога + Если ФайлСуществуетКомандаСистемы(КаталогВременногоFeature) Тогда + СоздатьКаталогКомандаСистемы(КаталогВременногоFeature); + КонецЕсли; + Иначе + ИмяВременногоFeature = ПолучитьИмяВременногоФайла("feature"); + ВременныйФайл = Новый Файл(ИмяВременногоFeature); + КаталогВременногоFeature = ВременныйФайл.Путь; + КонецЕсли; - ИмяВременногоFeature = КаталогВременногоFeature + Разделитель + "temp.feature"; + ИмяВременногоFeature = КаталогВременногоFeature + Разделитель + "vanessa-add-temp.feature"; ЗТ = Новый ЗаписьТекста(ИмяВременногоFeature, КодировкаТекста.UTF8); Если Лев(Объект.СгенерированныйСценарий, 1) <> "#" Тогда @@ -6726,9 +6816,7 @@ &НаКлиенте Процедура ОбновитьКнопкуЗагрузитьФичи() Если Объект.текЗначениеОперации = "ЗагрузитьФичиИзКаталога" Тогда - //Элементы.ПодменюЗагрузитьФичи.Заголовок = "Загрузить фичи из каталога"; ИначеЕсли Объект.текЗначениеОперации = "ЗагрузитьОднуФичу" Тогда - //Элементы.ПодменюЗагрузитьФичи.Заголовок = "Загрузить одну фичу"; ИначеЕсли Объект.текЗначениеОперации = "" Тогда Иначе Стр = "Ошибка. Неизвестное значение параметра текЗначениеОперации = " + Объект.текЗначениеОперации; @@ -6842,7 +6930,6 @@ Объект.КаталогИнструментов = КаталогИнструментовСохр; - //ВосстановитьНастройки(ЭтоLinux); ВосстановитьВсеНастройкиИзХранилища(); ВостановитьНедавноЗагруженныеФичи(НедавноЗагруженныеФичи); Если ЗначениеЗаполнено(НедавноЗагруженныеФичи) Тогда @@ -8182,8 +8269,6 @@ Иначе Пример = Пример + Символы.ПС + ПромСтр; КонецЕсли; - //КонецЕсли; - КонецЕсли; Продолжить; @@ -9217,7 +9302,6 @@ ЭтаФорма.ТекущийЭлемент = Элементы.ДеревоТестов; - //ДобавитьВСписокНедавноЗагруженныеФичи(); ЗаполнитьПолеВерсияПлатформыДляГенерацииEPFЕслиЭтоВозможно(); ТаймайтЗагрузкиНастроек = ?(Объект.ПлагиныЗагружены, 0.1, 1);//TODO ?? уменьшить таймаут менее 5 секунд @@ -9764,38 +9848,6 @@ УдалитьШагиИзМассиваШаговПоСписку(Шаги, МассивДляУдаления); КонецЕсли; - //Если ДопПараметры.РежимВыполненияДанногоСценарияСТекущегоШага Тогда - // МассивДляУдаления = Новый Массив; - // Ном = -1; - // Для каждого Шаг Из Шаги Цикл - // Ном = Ном + 1; - // Если Шаг.СтрокаШага = ДопПараметры.ИдСтрокиШагаСКоторогоВыполнятьСценарийСДанногоШага Тогда - // Прервать; - // КонецЕсли; - // - // МассивДляУдаления.Добавить(Ном); - // КонецЦикла; - // - // УдалитьШагиИзМассиваШаговПоСписку(Шаги, МассивДляУдаления); - //КонецЕсли; - // - //Если ДопПараметры.РежимВыполненияДанногоСценарияСТекущегоШагаСПродолжением Тогда - // Если Не ДопПараметры.НашелСценарий Тогда - // МассивДляУдаления = Новый Массив; - // Ном = -1; - // Для каждого Шаг Из Шаги Цикл - // Ном = Ном + 1; - // Если Шаг.СтрокаШага = ДопПараметры.ИдСтрокиШагаСКоторогоВыполнятьСценарийСДанногоШага Тогда - // Прервать; - // КонецЕсли; - // - // МассивДляУдаления.Добавить(Ном); - // КонецЦикла; - // - // УдалитьШагиИзМассиваШаговПоСписку(Шаги, МассивДляУдаления); - // КонецЕсли; - //КонецЕсли; - Если ДопПараметры.РежимВыполненияОдногоШага Тогда МассивДляУдаления = Новый Массив; Ном = -1; @@ -9983,7 +10035,6 @@ &НаКлиенте Функция ПреобразоватьКДатеСтроку(Знач Стр) НачСтр = Стр; - //Зн = Дата(Стр); Год = 0; Месяц = 0; День = 0; @@ -10134,7 +10185,7 @@ + Символы.ПС + ПолучитьТекстСообщенияПользователю("$Технические данные$") + ":" + Символы.ПС + " " + ПолучитьТекстСообщенияПользователю("$ИмяФайла$") +": " + ИмяФайла + Символы.ПС + " " + ПолучитьТекстСообщенияПользователю("$ИмяПроцедуры$") + ": " + ИмяПроцедуры - + Символы.ПС + " " + ПолучитьТекстСообщенияПользователю("$ВерсияVB$") + ": " + ПолучитьВерсиюОбработкиКлиент() + + Символы.ПС + " " + ПолучитьТекстСообщенияПользователю("$ВерсияVanessaADD$") + ": " + ПолучитьВерсиюОбработкиКлиент() + Символы.ПС + " " + ПолучитьТекстСообщенияПользователю("$ВерсияПлатформы$") +": " + ВерсияПриложения + Символы.ПС + " " + ПолучитьТекстСообщенияПользователю("$РежимСовместимостиTestManager$") +": " + РежимСовместимости; @@ -10324,17 +10375,18 @@ &НаКлиенте Функция ПолучитьЗначениеДляПередачиВМетод(Знач Значение, Знач Тип) Если Тип = "Строка" Тогда - РезЗначение = СобратьСтрокуДляПередачиВКод(Значение); + РезЗначение = ВычислитьПеременныеКонтекстаВнутриСтроки(Значение); + РезЗначение = СобратьСтрокуДляПередачиВКод(РезЗначение); Возврат """" + СтрЗаменить(РезЗначение, """", """""") + """"; ИначеЕсли Тип = "Число" Тогда Возврат Значение; ИначеЕсли Тип = "Дата" Тогда Возврат ПреобразоватьКДатеСтроку(Значение); - Иначе - ТекстСообщения = "Неизвестный Тип: %1 в ПолучитьЗначениеДляПередачиВМетод"; - ТекстСообщения = СтрЗаменить(ТекстСообщения,"%1",Тип); - ВызватьИсключение ТекстСообщения; КонецЕсли; + + ТекстСообщения = "Неизвестный Тип: %1 в ПолучитьЗначениеДляПередачиВМетод"; + ТекстСообщения = СтрЗаменить(ТекстСообщения,"%1",Тип); + ВызватьИсключение ТекстСообщения; КонецФункции &НаСервереБезКонтекста @@ -10384,7 +10436,6 @@ &НаСервереБезКонтекста Функция ПреобразоватьКДатеСтрокуСервер(Знач Стр) НачСтр = Стр; - //Зн = Дата(Стр); Год = 0; Месяц = 0; День = 0; @@ -10787,7 +10838,6 @@ СтрокаШага.ТипКартинки = 4; РезультатПрохожденияШага.Вставить("Статус", СтрокаШага.Статус); КонецЕсли; - //РезультатПрохожденияТестовШагов.Добавить(РезультатПрохожденияШага); ПерейтиКВыполнениюСледующегоШага(, , ИдСледующегоШага); Иначе @@ -10822,7 +10872,6 @@ ОписаниеОшибки = ""; ПризнакРучногоВыполненияШага = Ложь; ДействияПослеЗавершенияСценария(СтрокаСценария, БылаОшибка, ОписаниеОшибки); - //РезультатПрохожденияТестовШагов.Добавить(РезультатПрохожденияШага); Если БылаОшибка Тогда СтатусЗапускаСценариев = Ложь; @@ -11629,8 +11678,6 @@ КаталогOutputИнструкцияHTML = ПреобразоватьПутьСТочкамиКНормальномуПути(Объект.КаталогOutputИнструкцияHTML); - //ФайлПроверкаСуществования = Новый Файл(Объект.КаталогOutputИнструкцияHTML); - //Если НЕ ФайлПроверкаСуществования.Существует() Тогда Если НЕ ФайлСуществуетКомандаСистемы(КаталогOutputИнструкцияHTML) Тогда Стр = "Файл КаталогOutputИнструкцияHTML: " + КаталогOutputИнструкцияHTML + " не существует."; Сообщить(Стр); @@ -14469,7 +14516,7 @@ Функция ОпределитьПараметрыВСтрокеПримера(Знач Стр) Массив = Новый Массив; - Стр = СтрЗаменить(Стр,"\|","~ЭкранированиеВертикальнойЧерты~"); + Стр = СтрЗаменить(Стр, "\|", "~ЭкранированиеВертикальнойЧерты~"); Стр = СокрЛП(Стр); Если Лев(Стр, 1) <> "|" Тогда @@ -14756,13 +14803,19 @@ Если МассивОбъектов[ИдВМассиве - 1] = "CommandInterfaceButton" Тогда Если НРег(МассивСвойств[1]["isMain"]) = "true" Тогда Если МассивСвойств[ИдВМассиве - 2]["title"] = "Панель разделов" Тогда - ТекстРезультат.ДобавитьСтроку(ПолучитьПервоеКлючевоеСлово(СчетчикДействий) + " В панели разделов я выбираю '" + ЭкранироватьСпецСимволыДляЗначенияШага(МассивСвойств[ИдВМассиве - 1]["title"]) + "'"); + ТекстРезультат.ДобавитьСтроку(ПолучитьПервоеКлючевоеСлово(СчетчикДействий) + + " В панели разделов я выбираю '" + + ЭкранироватьСпецСимволыДляЗначенияШага(МассивСвойств[ИдВМассиве - 1]["title"]) + "'"); НашлиПанельРазделов = Истина; ИначеЕсли МассивСвойств[ИдВМассиве - 2]["title"] = "Панель открытых" Тогда - ТекстРезультат.ДобавитьСтроку(ПолучитьПервоеКлючевоеСлово(СчетчикДействий) + " В панели открытых я выбираю '" + ЭкранироватьСпецСимволыДляЗначенияШага(МассивСвойств[ИдВМассиве - 1]["title"]) + "'"); - ИначеЕсли (МассивСвойств[ИдВМассиве - 2]["title"] = "Меню функций") или (МассивСвойств[ИдВМассиве - 3]["title"] = "Меню функций") Тогда + ТекстРезультат.ДобавитьСтроку(ПолучитьПервоеКлючевоеСлово(СчетчикДействий) + + " В панели открытых я выбираю '" + + ЭкранироватьСпецСимволыДляЗначенияШага(МассивСвойств[ИдВМассиве - 1]["title"]) + "'"); + ИначеЕсли (МассивСвойств[ИдВМассиве - 2]["title"] = "Меню функций") + Или (МассивСвойств[ИдВМассиве - 3]["title"] = "Меню функций") Тогда Если Не НашлиПанельРазделов Тогда - ТекстРезультат.ДобавитьСтроку(ПолучитьПервоеКлючевоеСлово(СчетчикДействий) + " в xml не найдено значение клика в панели разделов. Проверьте xml, который был получен с TestClient."); + ТекстРезультат.ДобавитьСтроку(ПолучитьПервоеКлючевоеСлово(СчетчикДействий) + + " в xml не найдено значение клика в панели разделов. Проверьте xml, который был получен с TestClient."); КонецЕсли; ЗаменилиПредыдущуюСтроку = Ложь; @@ -14837,15 +14890,19 @@ ЗаголовокОбъекта = МассивСвойств[ИдВМассиве - 1]["title"]; ИмяОбъекта = "'" + ЗаголовокОбъекта + "'"; - Если (СокрЛП(ЗаголовокОбъекта) = "") или (ЕстьДублиЗаголовковУПоля(МассивСтруктурФорм, ТекущаяФорма, ЗаголовокОбъекта, "Кнопка")) Тогда - ИмяОбъекта = "с именем '" + ЭкранироватьСпецСимволыДляЗначенияШага(МассивСвойств[ИдВМассиве - 1]["name"]) + "'"; + Если (СокрЛП(ЗаголовокОбъекта) = "") + Или (ЕстьДублиЗаголовковУПоля(МассивСтруктурФорм, ТекущаяФорма, + ЗаголовокОбъекта, "Кнопка")) Тогда + ИмяОбъекта = "с именем '" + + ЭкранироватьСпецСимволыДляЗначенияШага(МассивСвойств[ИдВМассиве - 1]["name"]) + "'"; КонецЕсли; ДобавитьОбычнуюСтроку = Истина; Если ТекущаяТЧ = "" Тогда ДобавитьОбычнуюСтроку = Истина; Иначе - ТекстРезультат.ДобавитьСтроку(ПолучитьПервоеКлючевоеСлово(СчетчикДействий) + " в таблице """ + ТекущаяТЧ + """ я нажимаю на кнопку " + ИмяОбъекта); + ТекстРезультат.ДобавитьСтроку(ПолучитьПервоеКлючевоеСлово(СчетчикДействий) + + " в таблице """ + ТекущаяТЧ + """ я нажимаю на кнопку " + ИмяОбъекта); ДобавитьОбычнуюСтроку = Ложь; КонецЕсли; @@ -14853,7 +14910,8 @@ ДанныеНажатияНаЭлементФормы = Новый Структура; ДанныеНажатияНаЭлементФормы.Вставить("ТекущееОкно",ТекущееОкно); ДанныеНажатияНаЭлементФормы.Вставить("ИмяКнопки",ЗаголовокОбъекта); - ТекстРезультат.ДобавитьСтроку(ПолучитьПервоеКлючевоеСлово(СчетчикДействий) + " я нажимаю на кнопку " + ИмяОбъекта); + ТекстРезультат.ДобавитьСтроку(ПолучитьПервоеКлючевоеСлово(СчетчикДействий) + + " я нажимаю на кнопку " + ИмяОбъекта); Если ЗаголовокОбъекта = "Провести и закрыть" Или ЗаголовокОбъекта = "Записать и закрыть" @@ -14956,14 +15014,12 @@ КонецЕсли; КонецЕсли; ИначеЕсли ИмяУзла = "endEditRow" Тогда - //Если МассивОбъектов[ИдВМассиве - 1] = "FormTable" Тогда Если ТекущаяТЧ <> "" Тогда Если МассивСвойств[ИдВМассиве]["cancel"] = "false" Тогда ТекстРезультат.ДобавитьСтроку(ПолучитьПервоеКлючевоеСлово(СчетчикДействий) + " в таблице """ + ТекущаяТЧ + """ я завершаю редактирование строки"); КонецЕсли; КонецЕсли; ИначеЕсли ИмяУзла = "addRow" Тогда - //Если МассивОбъектов[ИдВМассиве - 1] = "FormTable" Тогда Если ТекущаяТЧ <> "" Тогда ТекстРезультат.ДобавитьСтроку(ПолучитьПервоеКлючевоеСлово(СчетчикДействий) + " в таблице """ + ТекущаяТЧ + """ я добавляю новую строку"); КонецЕсли; @@ -14991,10 +15047,8 @@ Если МассивОбъектов[ИдВМассиве - 1] = "FormField" Тогда ИмяОбъекта = МассивСвойств[ИдВМассиве - 1]["title"]; Если СокрЛП(ИмяОбъекта) <> "" и (Не ЕстьДублиЗаголовковУПоля(МассивСтруктурФорм, ТекущаяФорма, ИмяОбъекта, "ПолеФормы")) Тогда - //ТекстРезультат.ДобавитьСтроку(ПолучитьПервоеКлючевоеСлово(СчетчикДействий) + " я открываю выпадающий список """ + ИмяОбъекта + """"); Иначе ИмяОбъекта = МассивСвойств[ИдВМассиве - 1]["name"]; - //ТекстРезультат.ДобавитьСтроку(ПолучитьПервоеКлючевоеСлово(СчетчикДействий) + " я открываю выпадающий список с именем """ + ИмяОбъекта + """"); КонецЕсли; КонецЕсли; ИначеЕсли ИмяУзла = "executeChoiceFromChoiceList" Тогда @@ -15247,7 +15301,6 @@ КонецЕсли; ИначеЕсли ИмяУзла = "setCheck" Тогда Если МассивОбъектов[ИдВМассиве - 1] = "FormField" Тогда - //Если МассивОбъектов[ИдВМассиве - 2] = "FormTable" Тогда Если ТекущаяТЧ <> "" Тогда Если СокрЛП(МассивСвойств[ИдВМассиве - 1]["title"]) <> "" Тогда ТекстРезультат.ДобавитьСтроку(ПолучитьПервоеКлючевоеСлово(СчетчикДействий) + " в таблице """ + ТекущаяТЧ + """ я изменяю флаг '" + ЭкранироватьСпецСимволыДляЗначенияШага(МассивСвойств[ИдВМассиве - 1]["title"]) + "'"); @@ -15295,7 +15348,7 @@ Если СокрЛП(СвойствоСтроки["cellText"]) = "" Тогда Продолжить; КонецЕсли; - Стр1 = Стр1 + " '" + СвойствоСтроки["title"] + "' |"; + Стр1 = Стр1 + ЗначениеДляТаблицыГеркин(СвойствоСтроки["title"]); КонецЦикла; Стр2 = "| "; @@ -15304,7 +15357,7 @@ Если СокрЛП(СвойствоСтроки["cellText"]) = "" Тогда Продолжить; КонецЕсли; - Стр2 = Стр2 + " '" + СвойствоСтроки["cellText"] + "' |"; + Стр2 = Стр2 + ЗначениеДляТаблицыГеркин(СвойствоСтроки["cellText"]); КонецЦикла; МассивТаблицы = Новый Массив(); @@ -15323,16 +15376,26 @@ ДобавитьПодсказкуПоПереходуКМетаданномуВСлужебнойФорма1С_ВыборТипа = Ложь; КонецЕсли; - ТекстРезультат.ДобавитьСтроку(ПолучитьПервоеКлючевоеСлово(СчетчикДействий) + ДобавляемаяСтрока); + ТекстРезультат.ДобавитьСтроку( + ПолучитьПервоеКлючевоеСлово(СчетчикДействий) + ДобавляемаяСтрока); ИначеЕсли (ИмяУзла = "expand") Тогда - ТекстРезультат.ДобавитьСтроку(ПолучитьПервоеКлючевоеСлово(СчетчикДействий) + " в таблице """ + ЭкранироватьСпецСимволыДляЗначенияШага(МассивСвойств[ИдВМассиве - 1]["name"]) + """ я разворачиваю строку:"); + ТекстРезультат.ДобавитьСтроку(ПолучитьПервоеКлючевоеСлово(СчетчикДействий) + + " в таблице """ + + ЭкранироватьСпецСимволыДляЗначенияШага(МассивСвойств[ИдВМассиве - 1]["name"]) + + """ я разворачиваю строку:"); ИначеЕсли (ИмяУзла = "collapse") Тогда - ТекстРезультат.ДобавитьСтроку(ПолучитьПервоеКлючевоеСлово(СчетчикДействий) + " в таблице """ + ЭкранироватьСпецСимволыДляЗначенияШага(МассивСвойств[ИдВМассиве - 1]["name"]) + """ я сворачиваю строку:"); + ТекстРезультат.ДобавитьСтроку(ПолучитьПервоеКлючевоеСлово(СчетчикДействий) + + " в таблице """ + + ЭкранироватьСпецСимволыДляЗначенияШага(МассивСвойств[ИдВМассиве - 1]["name"]) + + """ я сворачиваю строку:"); КонецЕсли; ТекстРезультат.ДобавитьСтроку(Стр); Иначе Если (ИмяУзла = "expand") Тогда - ТекстРезультат.ДобавитьСтроку(ПолучитьПервоеКлючевоеСлово(СчетчикДействий) + " в таблице """ + ЭкранироватьСпецСимволыДляЗначенияШага(МассивСвойств[ИдВМассиве - 1]["name"]) + """ я разворачиваю текущую строку"); + ТекстРезультат.ДобавитьСтроку(ПолучитьПервоеКлючевоеСлово(СчетчикДействий) + + " в таблице """ + + ЭкранироватьСпецСимволыДляЗначенияШага(МассивСвойств[ИдВМассиве - 1]["name"]) + + """ я разворачиваю текущую строку"); КонецЕсли; КонецЕсли; @@ -15389,7 +15452,7 @@ Текст = Новый ТекстовыйДокумент; Текст.ДобавитьСтроку(Результат); - Объект.СгенерированныйКод = Текст.ПолучитьТекст(); + Объект.СгенерированныйКод = Текст.ПолучитьТекст();//TODO зачем нужно это преобразование в ТекстовыйДокумент? Исключение Сообщить("Не смог обработать XML в UILogToScript."); @@ -15448,7 +15511,6 @@ ТестовоеПриложение.УстановитьСоединение(); ГлавноеОкноТестируемого = ПолучитьГлавноеОкноТестируемого(ТестовоеПриложение); Если ГлавноеОкноТестируемого = Неопределено Тогда - //ВызватьИсключение "Не смог найти ГлавноеОкноТестируемого у уже подключенного TestClient."; Возврат Ложь; КонецЕсли; ЗаполнитьКонтекстСохраняемыйДляТестовоеПриложение(ТестовоеПриложение); @@ -15792,8 +15854,6 @@ РазвернутьСтрокиДерева(ПодчиненныеСтроки); КонецЕсли; - //ИдентификаторСтроки=Строка.ПолучитьИдентификатор(); - //Элементы.ДеревоТестов.Развернуть(ИдентификаторСтроки, Истина); КонецЦикла; КонецПроцедуры @@ -16249,11 +16309,6 @@ Если КолКол1 < КолКол2 Тогда Возврат Ложь;//значит АдресТекущейОбласти не находится внутри Адрес КонецЕсли; - - //Если НРег(Адрес) <> Нрег(АдресТекущейОбласти) Тогда - // //значит нельзя перейти к этой строке - // Возврат Ложь; - //КонецЕсли; КонецЕсли; Возврат Истина; @@ -16668,7 +16723,7 @@ &НаКлиенте Функция ПолучитьКорректноеПредставлениеСтроковогоЗначенияПоля(Знач Стр) - Стр = СтрЗаменить(Стр,"\n",Символы.ПС); + Стр = СтрЗаменить(Стр, "\n", Символы.ПС); ЭтоМногоСтрочнаяСтрока = Ложь; Если Найти(Стр,Символы.ПС) > 0 Тогда @@ -16688,11 +16743,11 @@ ПредставлениеЭкранированныйАпостроф = "__&Апостроф__"; Для Каждого Элем Из МассивСтрок Цикл - Элем = СтрЗаменить(Элем,"\'",ПредставлениеЭкранированныйАпостроф); - Элем = СтрЗаменить(Элем,"'","\'"); - Элем = СтрЗаменить(Элем,ПредставлениеЭкранированныйАпостроф,"\'"); + Элем = СтрЗаменить(Элем, "\'", ПредставлениеЭкранированныйАпостроф); + Элем = СтрЗаменить(Элем, "'", "\'"); + Элем = СтрЗаменить(Элем, ПредставлениеЭкранированныйАпостроф, "\'"); - НоваяСтрока = НоваяСтрока + Символы.ПС + Символы.Таб + Символы.Таб + "|'" + Элем + "'|"; + НоваяСтрока = НоваяСтрока + Символы.ПС + Символы.Таб + Символы.Таб + "|" + ЗначениеДляТаблицыГеркин(Элем); КонецЦикла; Возврат НоваяСтрока; @@ -16700,8 +16755,8 @@ &НаКлиенте Функция ЭкранироватьСпецСимволыДляЗначенияШага(Знач Стр) - Стр = СтрЗаменить(Стр,"""","\"""); - Возврат СтрЗаменить(Стр,"'","\'"); + Стр = СтрЗаменить(Стр, """", "\"""); + Возврат СтрЗаменить(Стр, "'", "\'"); КонецФункции &НаКлиенте @@ -16735,7 +16790,10 @@ Если ЭлемСтало.Свойство("ТекстРедактирования") Тогда Если ЭлемСтало.ТекстРедактирования <> ПредставлениеДанных Тогда - Изменение = "у элемента формы с именем """ + ЭлемСтало.Имя + """ текст редактирования стал равен " + ПолучитьКорректноеПредставлениеСтроковогоЗначенияПоля("'" + ЭкранироватьСпецСимволыДляЗначенияШага(ЭлемСтало.ТекстРедактирования) + "'"); + Изменение = "у элемента формы с именем """ + ЭлемСтало.Имя + + """ текст редактирования стал равен " + + ПолучитьКорректноеПредставлениеСтроковогоЗначенияПоля( + "'" + ЭкранироватьСпецСимволыДляЗначенияШага(ЭлемСтало.ТекстРедактирования) + "'"); Стр = Стр + " И " + Изменение + Символы.ПС; КонецЕсли; @@ -16747,7 +16805,9 @@ КонецЕсли; Если СокрЛП(ЭлемСтало[Ключ]) <> СокрЛП(ЭлемБыло[Ключ]) Тогда - Изменение = "элемент формы с именем """ + ЭлемСтало.Имя + """ стал равен " + ПолучитьКорректноеПредставлениеСтроковогоЗначенияПоля("'" + ЭкранироватьСпецСимволыДляЗначенияШага(ПредставлениеДанных) + "'"); + Изменение = "элемент формы с именем """ + ЭлемСтало.Имя + """ стал равен " + + ПолучитьКорректноеПредставлениеСтроковогоЗначенияПоля( + "'" + ЭкранироватьСпецСимволыДляЗначенияШага(ПредставлениеДанных) + "'"); Если Стр = "" Тогда Стр = Стр + " Тогда " + Изменение + Символы.ПС; @@ -16783,14 +16843,13 @@ Изменение = "элемент формы с именем """ + ЭлемСтало.Имя + """ " + Значение; Если Было = Неопределено Тогда - //ДобавитьСтрокуИзменения(Стр,Изменение); Иначе Если НЕ ЭлемБыло.Свойство(Ключ) Тогда Продолжить; КонецЕсли; Если СокрЛП(ЭлемСтало[Ключ]) <> СокрЛП(ЭлемБыло[Ключ]) Тогда - ДобавитьСтрокуИзменения(Стр,Изменение); + ДобавитьСтрокуИзменения(Стр, Изменение); КонецЕсли; КонецЕсли; @@ -16803,7 +16862,6 @@ Изменение = "элемент формы с именем """ + ЭлемСтало.Имя + """ " + Значение; Если Было = Неопределено Тогда - //ДобавитьСтрокуИзменения(Стр,Изменение); Иначе Если НЕ ЭлемБыло.Свойство(Ключ) Тогда Продолжить; @@ -16815,8 +16873,6 @@ КонецЕсли; ИначеЕсли Ключ = "ТабДок" Тогда - //Если Было = Неопределено Тогда - СтрТабДок = ПолучитьСтрокуТабличныйДокументФормаTestClient(ЭлемСтало[Ключ]); Если СтрТабДок = "" Тогда @@ -16838,8 +16894,6 @@ Стр = Стр + СтрТабДок + Символы.ПС; КонецЕсли; - //КонецЕсли; - ИначеЕсли Ключ = "ЗначениеТЧ" Тогда Если ЭлемСтало[Ключ] = Неопределено Тогда Продолжить; @@ -16857,17 +16911,7 @@ КонецЕсли; Если (ЭлемБыло = Неопределено) Или (ЭлемБыло[Ключ] = Неопределено) Тогда - Изменение = "таблица """ + ЭлемСтало.Имя + """ стала равной:"; - - Если Стр = "" Тогда - Стр = Стр + " Тогда " + Изменение + Символы.ПС; - Иначе - Стр = Стр + " И " + Изменение + Символы.ПС; - КонецЕсли; - - СтрТЧ = ПолучитьСтрокуСТЧФормаTestClient(ЭлемСтало[Ключ]); - - Стр = Стр + СтрТЧ + Символы.ПС; + ДобавитьТекстШагаСравненияТаблиц(ЭлемСтало, Ключ, Стр); Иначе //надо сравнить две ТЧ ТЧбыло = ЭлемБыло[Ключ]; @@ -16879,17 +16923,7 @@ Если ТЧбыло.Количество() <> ТЧстало.Количество() Тогда //значит изменилось количество строк, просто выводим новую таблицу - Изменение = "таблица """ + ЭлемСтало.Имя + """ стала равной:"; - - Если Стр = "" Тогда - Стр = Стр + " Тогда " + Изменение + Символы.ПС; - Иначе - Стр = Стр + " И " + Изменение + Символы.ПС; - КонецЕсли; - - СтрТЧ = ПолучитьСтрокуСТЧФормаTestClient(ЭлемСтало[Ключ]); - - Стр = Стр + СтрТЧ + Символы.ПС; + ДобавитьТекстШагаСравненияТаблиц(ЭлемСтало, Ключ, Стр); Продолжить; КонецЕсли; @@ -16942,15 +16976,7 @@ Продолжить; КонецЕсли; - Изменение = "таблица формы с именем """ + ЭлемСтало.Имя + """ стала равной:"; - Если Стр = "" Тогда - Стр = Стр + " Тогда " + Изменение + Символы.ПС; - Иначе - Стр = Стр + " И " + Изменение + Символы.ПС; - КонецЕсли; - СтрТЧ = ПолучитьСтрокуСТЧФормаTestClient(ЭлемСтало[Ключ], ИзмененныеКолонки); - - Стр = Стр + СтрТЧ + Символы.ПС; + ДобавитьТекстШагаСравненияТаблиц(ЭлемСтало, Ключ, Стр, Истина, ИзмененныеКолонки); КонецЕсли; @@ -16963,6 +16989,30 @@ Возврат Стр; КонецФункции +&НаКлиенте +Процедура ДобавитьТекстШагаСравненияТаблиц(Знач ЭлемСтало, Знач Ключ, Стр, Знач ЭтоТаблицаФормы = Ложь, + ИзмененныеКолонки = Неопределено) + + НачалоШага = "таблица"; + Если ЭтоТаблицаФормы Тогда + НачалоШага = "таблица формы с именем"; + КонецЕсли; + Изменение = НачалоШага + " """ + ЭлемСтало.Имя + """ содержит строки:"; + ДопСтрокаДляКомментария = НачалоШага + " """ + ЭлемСтало.Имя + """ стала равной:"; + + Если Стр = "" Тогда + КлючевоеСловоДляВставки = " Тогда "; + Иначе + КлючевоеСловоДляВставки = " И "; + КонецЕсли; + Стр = Стр + КлючевоеСловоДляВставки + Изменение + Символы.ПС; + Стр = Стр + "# " + КлючевоеСловоДляВставки + ДопСтрокаДляКомментария + Символы.ПС; + + СтрТЧ = ПолучитьСтрокуСТЧФормаTestClient(ЭлемСтало[Ключ], ИзмененныеКолонки); + + Стр = Стр + СтрТЧ + Символы.ПС; +КонецПроцедуры + &НаКлиенте Процедура ФорматироватьМассивСтрокКакТаблицу(МассивСтрок) Если МассивСтрок.Количество() = 0 Тогда @@ -16970,8 +17020,8 @@ КонецЕсли; Стр = СокрЛП(МассивСтрок[0]); - Стр = Сред(Стр, 2,СтрДлина(Стр) - 2); - Стр = СтрЗаменить(Стр,"\|",ПредставлениеВертЧертыВТабДок); + Стр = Сред(Стр, 2, СтрДлина(Стр) - 2); + Стр = СтрЗаменить(Стр, "\|", ПредставлениеВертЧертыВТабДок); МассивСтолбцов = РазложитьСтрокуВМассивПодстрокКлиент(Стр, "|"); КолПараметров = МассивСтолбцов.Количество(); @@ -16981,8 +17031,8 @@ КонецЦикла; Для каждого Стр Из МассивСтрок Цикл - Стр = Сред(Стр, 2,СтрДлина(Стр) - 2); - Стр = СтрЗаменить(Стр,"\|",ПредставлениеВертЧертыВТабДок); + Стр = Сред(Стр, 2, СтрДлина(Стр) - 2); + Стр = СтрЗаменить(Стр, "\|", ПредставлениеВертЧертыВТабДок); МассивСтолбцов = РазложитьСтрокуВМассивПодстрокКлиент(Стр, "|"); Для Ккк = 0 По МассивДлин.Количество() - 1 Цикл @@ -17000,8 +17050,8 @@ Ном = -1; Для каждого Стр Из МассивСтрок Цикл Ном = Ном + 1; - Стр = Сред(Стр, 2,СтрДлина(Стр) - 2); - Стр = СтрЗаменить(Стр,"\|",ПредставлениеВертЧертыВТабДок); + Стр = Сред(Стр, 2, СтрДлина(Стр) - 2); + Стр = СтрЗаменить(Стр, "\|", ПредставлениеВертЧертыВТабДок); МассивСтолбцов = РазложитьСтрокуВМассивПодстрокКлиент(Стр, "|"); СтрПараметров = "| "; @@ -17048,8 +17098,20 @@ &НаКлиенте Функция ПолучитьКорректноеЗначениеТаблицыGherkin(Стр) - ПромСтр = СтрЗаменить(Стр,"|","\|"); - Возврат СтрЗаменить(ПромСтр,Символы.ПС,"\n") + ПромСтр = СтрЗаменить(Стр, "|", "\|"); + Возврат СтрЗаменить(ПромСтр, Символы.ПС, "\n") +КонецФункции + +&НаКлиенте +Функция ЗначениеДляТаблицыГеркин(Знач ИсходнаяСтрока) + Если ПустаяСтрока(ИсходнаяСтрока) Или Найти(ИсходнаяСтрока, """") <> 0 Или Найти(ИсходнаяСтрока, "|") <> 0 Тогда + Результат = " '" + ИсходнаяСтрока + "' |"; + Иначе + Результат = " " + ИсходнаяСтрока + " |"; + КонецЕсли; + Результат = СтрЗаменить(Результат, "\'", "'"); + Результат = СтрЗаменить(Результат, "\""", """"); + Возврат Результат; КонецФункции &НаКлиенте @@ -17068,7 +17130,7 @@ КонецЕсли; КонецЕсли; - Стр = Стр + " '" + Элем.Ключ + "' |"; + Стр = Стр + ЗначениеДляТаблицыГеркин(Элем.Ключ); КонецЦикла; Прервать; @@ -17086,7 +17148,7 @@ КонецЕсли; КонецЕсли; - СтрокаТЧ = СтрокаТЧ + " '" + ПолучитьКорректноеЗначениеТаблицыGherkin(Элем.Значение) + "' |"; + СтрокаТЧ = СтрокаТЧ + ЗначениеДляТаблицыГеркин(ПолучитьКорректноеЗначениеТаблицыGherkin(Элем.Значение)); КонецЦикла; МассивСтрок.Добавить(СтрокаТЧ); @@ -17169,7 +17231,6 @@ СтруктураПараметров.Вставить("МассивРезультатОбходаКаталогов", МассивРезультатОбходаКаталоговДляОднойФичи); СтруктураПараметров.Вставить("МассивСообщений", Новый Массив); - //СтруктураПараметров.Вставить("ПутьКОбработке", Объект.DebugLog); СтруктураПараметров.Вставить("СписокТеговИсключение", СписокИсключения); СтруктураПараметров.Вставить("СписокТеговОтбор", Объект.СписокТеговОтбор); СтруктураПараметров.Вставить("УдалитьСтрокуФичиИзДерева", Ложь); @@ -17819,7 +17880,6 @@ КаталогБазы = СтрЗаменить(КаталогБазы, """;Ref=""", "\"); ИначеЕсли Найти(ВРег(КаталогБазы), ВРег("ws=")) > 0 Тогда КаталогБазы = СтрЗаменить(КаталогБазы, "ws=", " /WS"); - Иначе КонецЕсли; КаталогБазы = СтрЗаменить(КаталогБазы, ";", ""); @@ -17893,8 +17953,6 @@ Отладка("СтрокаЗапуска=" + СтрокаЗапуска); - //ЗапуститьПриложение(СтрокаЗапуска); - Если ДанныеЗапускаКлиентаТестирования.ТипКлиента = "Web" Тогда Если ЕстьПоддержкаАсинхронныхВызовов Тогда ВыполнитьКомандуОСБезПоказаЧерногоОкна("start """" """ + СтрокаЗапуска + """", Ложь, Ложь); @@ -18483,53 +18541,37 @@ КонецПроцедуры -// Убрал, загрузка плагинов должна происходить по другому чуть. -//&НаКлиенте -//Процедура ПодключитьНайденныеКлиентскиеПлагиныНаСервере(Знач ЗагруженныеФайлы, Знач ИдентификаторыПлагинов) -// -// Перем ЗагруженныйФайл, ИмяПлагина, ОписаниеПлагина, ОписанияПлагинов; -// -// ОписанияПлагинов = ПодключитьПлагиныНаСервере(ЗагруженныеФайлы); -// -// Для Каждого ЗагруженныйФайл Из ЗагруженныеФайлы Цикл -// Объект.ПлагиныЗагружены = Истина; -// -// ИмяПлагина = ИдентификаторыПлагинов[ЗагруженныйФайл.Имя]; -// -// ОписаниеПлагина = ОписанияПлагинов[ЗагруженныйФайл.Имя]; -// Объект.Плагины.Вставить(ОписаниеПлагина.Идентификатор, ИмяПлагина); -// КэшФормПлагинов.Вставить(ОписаниеПлагина.Идентификатор, Истина); -// -// КонецЦикла; -// -// ЗагрузкаПлагиновЗавершение(); - -//КонецПроцедуры - &НаСервере -Функция ПодключитьПлагиныНаСервере(Знач ЗагружаемыеФайлы, Знач ПодключенныеРанее) +Функция ПодключитьПлагиныНаСервере(Знач ЗагружаемыеФайлы, Знач ИспользоватьПолноеИмя, Знач ПодключенныеРанее) ОписанияПлагинов = Новый Соответствие; ЭтотОбъектНаСервере = Объект(); Для Каждого ОписаниеФайла Из ЗагружаемыеФайлы Цикл - ФайлОбъект = Новый Файл(ОписаниеФайла.Имя); + Если ИспользоватьПолноеИмя Тогда + КлючФайла = ОписаниеФайла.ПолноеИмя; + Иначе + КлючФайла = ОписаниеФайла.Имя; + КонецЕсли; + + ФайлОбъект = Новый Файл(КлючФайла); ИмяПлагина = ФайлОбъект.ИмяБезРасширения; Если ПодключенныеРанее.Получить(ИмяПлагина) <> Неопределено Тогда Продолжить; КонецЕсли; Если Не Объект.ИспользоватьПрямыеПутиФайлов Тогда - ПодключитьФайлОбработкиНаСервере(ОписаниеФайла.Хранение, ИмяПлагина,,ЕстьЗащитаОтОпасныхДействий); + ПодключитьФайлОбработкиНаСервере(ОписаниеФайла.Хранение, ИмяПлагина, , ЕстьЗащитаОтОпасныхДействий); КонецЕсли; Попытка - ОбъектОбработки = СоздатьФайлОбработкиНаСервере(ОписаниеФайла.Имя, ИмяПлагина); + ОбъектОбработки = СоздатьФайлОбработкиНаСервере(КлючФайла, ИмяПлагина); ОбъектОбработки.Инициализация(ЭтотОбъектНаСервере); - ОписанияПлагинов.Вставить(ОписаниеФайла.Имя, ОбъектОбработки.ОписаниеПлагина(Объект.ТипыПлагинов)); + ОписанияПлагинов.Вставить(КлючФайла, ОбъектОбработки.ОписаниеПлагина(Объект.ТипыПлагинов)); Исключение - Ошибка = "Возникла ошибка при загрузке плагина: " + ОписаниеФайла.Имя + Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + Ошибка = "Возникла ошибка при загрузке плагина: " + КлючФайла + Символы.ПС + + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); Сообщить(Ошибка); Продолжить; КонецПопытки; @@ -18966,6 +19008,27 @@ Возврат ДвоичныеДанныеИлиПутьФичи; КонецФункции + +// Универсальная функция для проверки наличия свойств у значения любого типа данных +// +// Параметры: +// Объект - Любой - Коллекция любого типа, для которой необходимо проверить наличие свойства +// ИмяСвойства - Строка - имя проверяемого свойства +// +// Возвращаемое значение: +// Булево - Истина, если свойство существует +// +&НаКлиенте +Функция ЕстьСвойство(Знач Объект, Знач ИмяСвойства) Экспорт + НачальноеЗначение = Новый УникальныйИдентификатор(); + ЗначениеРеквизита = Новый Структура(ИмяСвойства, НачальноеЗначение); + ЗаполнитьЗначенияСвойств(ЗначениеРеквизита, Объект); + Если ЗначениеРеквизита[ИмяСвойства] <> НачальноеЗначение Тогда + Возврат Истина; + КонецЕсли; + Возврат Ложь; +КонецФункции + #КонецОбласти //СлужебныеПроцедурыИФункции #Область УправляющиеВоздействияПользователя @@ -19010,7 +19073,6 @@ Если ИмяИнструмента = "UILogToScript" Тогда ИмяИнструмента = "ПреобразованиеЖурналаДействийПользователя"; КонецЕсли; - //ИмяИнструмента = ДополнитьИдентификаторПрефиксомПодсистемы(ИмяИнструмента, Объект.ИспользуемыйПрефиксПодсистемы); ФормаИнструмента = ПолучитьФорму("Обработка." + ИмяИнструмента + "." + ИмяФормы); ФормаИнструмента.Открыть(); ФормаИнструмента = Неопределено; @@ -19023,7 +19085,6 @@ КонецЕсли; ПутьИнструмента = ПутьКВнешнимИнструментам + ИмяИнструмента + ".epf"; ФайлИнструмента = Новый Файл(ПутьИнструмента); - //Если Не ФайлИнструмента.Существует() Тогда Если Не ФайлСуществуетКомандаСистемы(ФайлИнструмента.ПолноеИмя) Тогда Сообщить("Инструмент <" + ИмяИнструмента + "> не найден в каталоге <" + ФайлИнструмента.Путь + ">"); Возврат; @@ -19058,10 +19119,6 @@ Функция ПолучитьПутьКВнешнимИнструментам() Путь = ПолучитьПутьКОбработкеКлиент() + "/tools/epf/utils/"; Возврат Путь; - //ФайлЯдра = Новый Файл(ЭтаФорма.ИспользуемоеИмяФайла); - //Результат = ФайлЯдра.Путь + "tools\epf\utils\"; - - //Возврат Результат; КонецФункции &НаКлиенте @@ -19093,13 +19150,11 @@ КонецПроцедуры -// <Описание процедуры> +// СоздатьОткрытьОтчетAllureПродолжение // // Параметры: -// <Параметр1> - <Тип.Вид> - <описание параметра> -// <продолжение описания параметра> -// <Параметр2> - <Тип.Вид> - <описание параметра> -// <продолжение описания параметра> +// КодВозврата - Число - <описание параметра> +// ДополнительныеПараметры - Структура - <описание параметра> // &НаКлиенте Процедура СоздатьОткрытьОтчетAllureПродолжение(КодВозврата, ДополнительныеПараметры) Экспорт diff --git "a/epf/bddRunner/bddRunner/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.bin" "b/epf/bddRunner/bddRunner/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.bin" index dbd74390b..fbb7ea839 100644 Binary files "a/epf/bddRunner/bddRunner/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.bin" and "b/epf/bddRunner/bddRunner/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.bin" differ diff --git "a/epf/bddRunner/bddRunner/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/epf/bddRunner/bddRunner/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" index 6eafa8498..63afb4843 100644 --- "a/epf/bddRunner/bddRunner/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ "b/epf/bddRunner/bddRunner/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" @@ -77,8 +77,6 @@ Процедура ПриЗакрытии() СохранитьНастройки(); - //WinSocket1 = ЭлементыФормы.WinSocket; - //WinSocket1.Close(); КонецПроцедуры Процедура ОсновныеДействияФормыНачатьЗапись(Кнопка) @@ -88,7 +86,6 @@ Процедура ОсновныеДействияФормыОстановитьЗапись(Кнопка) Стр = ОбъектКонтекст.ТестируемоеПриложение.ЗавершитьЗаписьЖурналаДействийПользователя(); - ПутьКОбработке = КаталогИнструментов + "\vendor\1C\UILogToScript.epf"; Файл = Новый Файл(ПутьКОбработке); Если Файл.Существует() Тогда @@ -106,7 +103,7 @@ //если ЖдатьОкончания = -1, тогда будет ожидания окончания работы приложения ИмяВременногоФайлаКоманды = ПолучитьИмяВременногоФайла("bat"); - // + ЗТ = Новый ЗаписьТекста(ИмяВременногоФайлаКоманды, КодировкаТекста.ANSI, , Ложь); ЗТ.Закрыть(); ЗТ = Новый ЗаписьТекста(ИмяВременногоФайлаКоманды, КодировкаТекста.UTF8, , Истина); @@ -146,10 +143,7 @@ ПреобразоватьПараметрыКоторыеНачинаютсяСТочкиКНормальнымПутям(Настройки); Настройки.Свойство("DebugLog", DebugLog); - //Настройки.Свойство("GenerateEpf", GenerateEpf); - //Настройки.Свойство("TestRun", TestRun); Настройки.Свойство("ГенерироватьУФ", ГенерироватьУФ); - //Настройки.Свойство("КаталогИнструментов", КаталогИнструментов); Настройки.Свойство("КаталогПроекта", КаталогПроекта); Настройки.Свойство("КаталогФич", КаталогФич); Настройки.Свойство("ДелатьОтчетВФорматеАллюр", ДелатьОтчетВФорматеАллюр); @@ -173,9 +167,6 @@ Настройки.Свойство("ВерсияПлатформыДляГенерацииEPF", ВерсияПлатформыДляГенерацииEPF); КонецЕсли; - //Элементы.DebugLog.Пометка = Объект.DebugLog; - //Элементы.GenerateEpf.Пометка = Объект.GenerateEpf; - //Элементы.TestRun.Пометка = Объект.TestRun; КонецПроцедуры Процедура СохранитьНастройки() @@ -185,10 +176,7 @@ Настройки = Новый Структура; Настройки.Вставить("DebugLog", DebugLog); - //Настройки.Вставить("GenerateEpf", Объект.GenerateEpf); - //Настройки.Вставить("TestRun", Объект.TestRun); Настройки.Вставить("ГенерироватьУФ", ГенерироватьУФ); - //Настройки.Вставить("КаталогИнструментов", КаталогИнструментов); Настройки.Вставить("КаталогПроекта", КаталогПроекта); Настройки.Вставить("КаталогФич", КаталогФич); Настройки.Вставить("ДелатьОтчетВФорматеАллюр", ДелатьОтчетВФорматеАллюр); @@ -223,32 +211,27 @@ КонецПроцедуры Функция ПолучитьПутьКПлагинам() - Возврат КаталогИнструментов + "\plugins\"; + Возврат КаталогИнструментов + "/plugins/"; КонецФункции Процедура ЗагрузитьПлагины() ЭтотОбъект.Плагины = Новый Структура; - //Если ЭтотОбъект.ЭтоВстроеннаяОбработка Тогда - // ЭтотОбъект.Плагины = ЭтотОбъект.ПолучитьПлагины(); - //Иначе - КаталогПлагинов = ПолучитьПутьКПлагинам(); - НайденныеФайлы = НайтиФайлы(КаталогПлагинов, "*.epf", Ложь); - Для каждого ФайлОбработки Из НайденныеФайлы Цикл - Обработка = ВнешниеОбработки.Создать(ФайлОбработки.ПолноеИмя, Ложь); - Попытка - ОписаниеПлагина = Обработка.ОписаниеПлагина(ЭтотОбъект.ТипыПлагинов); - Обработка.Инициализация(ЭтотОбъект); - ЭтотОбъект.Плагины.Вставить(ОписаниеПлагина.Идентификатор, Обработка); - Исключение - Ошибка = "Возникла ошибка при загрузке плагина: "+ФайлОбработки.Имя + Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); - Сообщить(Ошибка); - Продолжить; - КонецПопытки; - КонецЦикла; - //КонецЕсли; + КаталогПлагинов = ПолучитьПутьКПлагинам(); + НайденныеФайлы = НайтиФайлы(КаталогПлагинов, "*.epf", Ложь); + Для каждого ФайлОбработки Из НайденныеФайлы Цикл + Обработка = ВнешниеОбработки.Создать(ФайлОбработки.ПолноеИмя, Ложь); + Попытка + ОписаниеПлагина = Обработка.ОписаниеПлагина(ЭтотОбъект.ТипыПлагинов); + Обработка.Инициализация(ЭтотОбъект); + ЭтотОбъект.Плагины.Вставить(ОписаниеПлагина.Идентификатор, Обработка); + Исключение + Ошибка = "Возникла ошибка при загрузке плагина: "+ФайлОбработки.Имя + Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + Сообщить(Ошибка); + Продолжить; + КонецПопытки; + КонецЦикла; - //ДобавитьКомандыЗагрузчиковНаФорме(); КонецПроцедуры Процедура ПриОткрытии() @@ -277,8 +260,6 @@ КонецЕсли; КонецЕсли; - //СтрутктураJSON = ПрочитатьСтруктуруИзJSONФайла("H:\Commons\Temp\VBParams.json"); - ЗаполнитьПолеВерсияПлатформыДляГенерацииEPFЕслиЭтоВозможно(); ЗагрузитьПлагины(); @@ -441,9 +422,7 @@ Возврат; КонецЕсли; - СтрЗапуска = СокрЛП(ПараметрЗапуска); - //СтрЗапуска = "StartFeaturePlayer;VBParams=C:\Commons\Rep\add\tools\JSON\VBParams836UF.json"; Если СтрЗапуска = "" Тогда Возврат; КонецЕсли; @@ -506,16 +485,12 @@ ДелатьСообщенияТранслитом = Истина; КонецЕсли; - - - //для формирования отчетов ЗнДобавлятьКИмениСценарияУсловияВыгрузки = ПолучитьЗначениеПереданногоПараметра(СтрутктураJSON,"ДобавлятьКИмениСценарияУсловияВыгрузки"); Если ЗнДобавлятьКИмениСценарияУсловияВыгрузки = "Истина" Тогда ДобавлятьКИмениСценарияУсловияВыгрузки = Истина; КонецЕсли; - ЗнВыгружатьСтатусВыполненияСценариевВФайл = ПолучитьЗначениеПереданногоПараметра(СтрутктураJSON,"ВыгружатьСтатусВыполненияСценариевВФайл"); Если ЗнВыгружатьСтатусВыполненияСценариевВФайл = "Истина" Тогда ВыгружатьСтатусВыполненияСценариевВФайл = Истина; @@ -528,7 +503,6 @@ ИмяТекущейСборки = ПолучитьЗначениеПереданногоПараметра(СтрутктураJSON,"ИмяСборки"); - //Allure ЗнДелатьОтчетВФорматеАллюр = ПолучитьЗначениеПереданногоПараметра(СтрутктураJSON,"ДелатьОтчетВФорматеАллюр"); Если ЗнДелатьОтчетВФорматеАллюр = "Истина" Тогда @@ -655,7 +629,6 @@ КонецПроцедуры Процедура ПриСменеСтраницы(Элемент, ТекущаяСтраница) - // Вставить содержимое обработчика. ЭлементыФормы.тпДеревоТестов.Видимость = Истина; КонецПроцедуры @@ -755,12 +728,8 @@ ЭтаФорма.Активизировать(); КонецПроцедуры +// TODO почему пустое тело функции ?? ПолучитьТаблицыПоТаблицаИзвестныхStepDefinition Процедура ПолучитьТаблицыПоТаблицаИзвестныхStepDefinition(МассивВерсийФайловИзТаблицаИзвестныхStepDefinition,МассивИменФайловИзТаблицаИзвестныхStepDefinition) - //Для Каждого СтрТаблицаИзвестныхStepDefinitionСервер Из ТаблицаИзвестныхStepDefinition Цикл - // МассивВерсийФайловИзТаблицаИзвестныхStepDefinition.Добавить(СтрТаблицаИзвестныхStepDefinitionСервер.ВерсияФайла); - // МассивИменФайловИзТаблицаИзвестныхStepDefinition.Добавить(СтрТаблицаИзвестныхStepDefinitionСервер.ИмяФайла); - // СтрТаблицаИзвестныхStepDefinitionСервер.СтрокаОбрабатывалась = Ложь; - //КонецЦикла; КонецПроцедуры // TODO почему пустое тело функции ?? ПолучитьЗначениеПоРанееСобраннойИнформации(ДополнительныеПараметры,КаталогФич,Стр) @@ -1145,8 +1114,9 @@ ОчиститьСодержимоеКаталога(ВременныйКаталогБазы); Исключение + ИнформацияОбОшибке = ИнформацияОбОшибке(); СделатьСообщение("Не смог распаковать " + ИмяФайла); - СделатьСообщение(ОписаниеОшибки()); + СделатьСообщение(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке)); Возврат Неопределено; КонецПопытки; КонецФункции @@ -1555,32 +1525,13 @@ Стр = СтрЗаменить(Стр,Символы.ПС,""); Стр = СтрЗаменить(Стр,Символы.ВК,""); - //СтрПоиска = "Рефлектор.ВызватьМетод(СтрТабицаКонтекстовОбработок.Обработка, ИмяПроцедуры, МассивАргументов);"; - //Поз = Найти(Стр,СтрПоиска); - //Если Поз > 0 Тогда - // ПромСтр = Сред(Стр,Поз + СтрДлина(СтрПоиска)); - // Если ПромСтр <> "" Тогда - // Стр = ПромСтр; - // КонецЕсли; - //КонецЕсли; - // - //Поз1 = Найти(Стр,"Метод объекта не обнаружен"); - //Если Поз1 > 0 Тогда - // Стр = Сред(Стр,Поз1); - // Поз2 = Найти(Стр,")"); - // Стр = Лев(Стр,Поз2); - //КонецЕсли; - ////Стр = СтрЗаменить(Стр,СтрПоиска,""); - - Стр = Стр + "; ИмяФайла="+ИмяФайла + ", ИмяПроцедуры="+ИмяПроцедуры + ", версия VB=" + ПолучитьВерсиюОбработки(); - //Возврат ПерекодировкаДляОтправкиОшибки(Стр); + Стр = Стр + "; ИмяФайла="+ИмяФайла + ", ИмяПроцедуры="+ИмяПроцедуры + ", версия Vanessa-ADD=" + ПолучитьВерсиюОбработки(); Возврат Стр; КонецФункции Функция ПреобразоватьКДатеСтроку(Знач Стр) НачСтр = Стр; - //Зн = Дата(Стр); Год = 0; Месяц = 0; День = 0; @@ -1892,8 +1843,6 @@ Шаги = МассивСценариевДляВыполнения[ТекИД_СценарияВМассиве].Шаги; Если (Шаги.Количество()-1) < ТекИД_ШагаВМассиве Тогда //значит все шаги выполнены, запускаем следующий сценарий - //МассивСценариевДляВыполнения[ТекИД_СценарияВМассиве].СтрокаДерева.ВремяОкончания = ТекущаяУниверсальнаяДатаВМиллисекундах(); - СтрокаСценария = МассивСценариевДляВыполнения[ТекИД_СценарияВМассиве].СтрокаДерева; @@ -1918,7 +1867,6 @@ КонецЕсли; ТекШаг = Шаги[ТекИД_ШагаВМассиве]; - //ТекШаг.СтрокаШага.ВремяНачала = ТекущаяУниверсальнаяДатаВМиллисекундах(); ЭлементыФормы.тпДеревоТестов.ТекущаяСтрока = ТекШаг.СтрокаШага; СтрокаШага = ТекШаг.СтрокаШага; @@ -1934,16 +1882,10 @@ АдресСнипета = ТекШаг.АдресСнипета; Если СокрЛП(АдресСнипета) = "" Тогда - //МассивСценариевДляВыполнения[ТекИД_СценарияВМассиве].СтрокаДерева.ВремяОкончания = ТекущаяУниверсальнаяДатаВМиллисекундах(); - - //СтрокаШага.ВремяОкончания = ТекущаяУниверсальнаяДатаВМиллисекундах(); СтрокаШага.Статус = "Pending"; ОписаниеОшибки = "Не реализован. Пустой адрес снипета у шага: " + ТекШаг.Имя; - //СтрокаШага.ОписаниеОшибки = ОписаниеОшибки; - //СтрокаСценария.ВремяОкончания = ТекущаяУниверсальнаяДатаВМиллисекундах(); - //СтрокаСценария.ОписаниеОшибки = ОписаниеОшибки; РезультатПрохожденияТестовСценария.Вставить("ВремяОкончания",ТекущаяУниверсальнаяДатаВМиллисекундах()); РезультатПрохожденияТестовСценария.Вставить("ОписаниеОшибки",ОписаниеОшибки); РезультатПрохожденияТестовСценария.Вставить("НомерСтрокиВФиче",СтрокаСценария.НомерСтрокиВФиче); @@ -1967,18 +1909,13 @@ Возврат; КонецЕсли; - - ОбработкаТеста = ПолучитьКонтекстТестаПоАдресСнипета(АдресСнипета); ИмяПроцедуры = ТекШаг.СтрокаРеальнойПроцедуры; СписокАргументов = ТекШаг.ЗначенияПараметров; - МассивПараметров = ПолучитьМассивПараметровИзСписокАргументов(СписокАргументов); - - Если СтрокаШага.ШагСПараметрамиВТаблице = Истина Тогда ПарамТаблица = Новый Массив; МассивПараметров.Добавить(ПарамТаблица); @@ -2014,11 +1951,11 @@ Попытка ПодготовитьИВызватьМетод(ТекШаг,ОбработкаТеста,ИмяПроцедуры,МассивПараметров); - ШагВыполнен = Истина; Исключение - Отладка("ОписаниеОшибки()="+ОписаниеОшибки()); + ИнформацияОбОшибке = ИнформацияОбОшибке(); ОписаниеОшибкиСтр = ОписаниеОшибки(); + Отладка("ОписаниеОшибки()=" + ОписаниеОшибкиСтр); Если Найти(ОписаниеОшибкиСтр,"}: Не реализовано.") > 0 Тогда //тогда это Pending СделатьСообщение("Шаг (" + ТекШаг.Имя + ") не реализован."); СтрОшибка = "Не реализовано."; @@ -2026,21 +1963,16 @@ Иначе //значит возникла ошибка СделатьСообщение("Шаг (" + ТекШаг.Имя + ") не выполнен."); - СтрОшибка = СформироватьОписаниеОшибки(ОписаниеОшибки(),АдресСнипета,ИмяПроцедуры); + СтрОшибка = СформироватьОписаниеОшибки(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке), АдресСнипета, ИмяПроцедуры); СделатьСообщение(СтрОшибка); КонецЕсли; КонецПопытки; - СтрокаШага = ТекШаг.СтрокаШага; - //СтрокаШага.ВремяОкончания = ТекущаяУниверсальнаяДатаВМиллисекундах(); - РезультатПрохожденияШага.Вставить("ВремяОкончания",ТекущаяУниверсальнаяДатаВМиллисекундах()); - - + РезультатПрохожденияШага.Вставить("ВремяОкончания", ТекущаяУниверсальнаяДатаВМиллисекундах()); ИдСледующегоШага = ПолучитьИдСледующегоШага(ТекШаг); - Если ШагВыполнен Тогда СтрокаШага.Статус = "Success"; РезультатПрохожденияТестовШагов.Добавить(РезультатПрохожденияШага); @@ -2056,13 +1988,10 @@ СтатусЗапускаСценариев = Ложь; КонецЕсли; - //СтрокаШага.ОписаниеОшибки = СтрОшибка; РезультатПрохожденияШага.Вставить("ОписаниеОшибки",СтрОшибка); РезультатПрохожденияШага.Вставить("Статус",СтрокаШага.Статус); СтрокаСценария = МассивСценариевДляВыполнения[ТекИД_СценарияВМассиве].СтрокаДерева; - //СтрокаСценария.ВремяОкончания = ТекущаяУниверсальнаяДатаВМиллисекундах(); - //СтрокаСценария.ОписаниеОшибки = СтрОшибка; РезультатПрохожденияТестовСценария.Вставить("ВремяОкончания",ТекущаяУниверсальнаяДатаВМиллисекундах()); РезультатПрохожденияТестовСценария.Вставить("ОписаниеОшибки",СтрОшибка); РезультатПрохожденияТестовСценария.Вставить("НомерСтрокиВФиче",СтрокаСценария.НомерСтрокиВФиче); @@ -2090,8 +2019,6 @@ ПодключитьОбработчикОжидания("ВыполнинтьСценарийАссинхронноТаймер",0.1,Истина); КонецЕсли; - - КонецПроцедуры Процедура ДобавитьШагиВРезультатПрохожденияТестовШаговКоторыеНеВыполнялись(Шаги,ТекИД,РезультатПрохожденияТестовШагов) @@ -2131,13 +2058,11 @@ Если СтрШаг.Статус <> "Success" Тогда СценарийВыполнен = Ложь; Статус = СтрШаг.Статус; - //СтрокаСценария.ОписаниеОшибки = СтрШаг.ОписаниеОшибки; Прервать; КонецЕсли; КонецЦикла; Если СценарийВыполнен Тогда - //ЭлементыФормы.тпДеревоТестов.Свернуть(СтрокаСценария); СтрокаСценария.Статус = "Success"; Иначе СтрокаСценария.Статус = Статус; @@ -2187,8 +2112,9 @@ Попытка ВызватьМетод(ОбработкаТеста, ИмяПроцедуры, МассивПараметров); Исключение - СделатьСообщение("Ошибка в " + ИмяПроцедуры + ". " + ОписаниеОшибки()); + ИнформацияОбОшибке = ИнформацияОбОшибке(); ОписаниеОшибки = ОписаниеОшибки(); + СделатьСообщение("Ошибка в " + ИмяПроцедуры + ". " + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке)); БылаОшибка = Истина; КонецПопытки; @@ -2384,20 +2310,14 @@ ЗаписатьЛогВЖРПередВыполнениемСценария(МассивСценариевДляВыполнения[ТекИД_СценарияВМассиве].Имя); КонецЕсли; - //МассивСценариевДляВыполнения[ТекИД_СценарияВМассиве].СтрокаДерева.ВремяНачала = ТекущаяУниверсальнаяДатаВМиллисекундах(); - СтрокаДерева = МассивСценариевДляВыполнения[ТекИД_СценарияВМассиве].СтрокаДерева; СтрокаДерева.РезультатПрохожденияТестовСценария = Новый Структура; СтрокаДерева.РезультатПрохожденияТестовСценария.Вставить("ВремяНачала",ТекущаяУниверсальнаяДатаВМиллисекундах()); РезультатПрохожденияТестовШагов = Новый Массив; СтрокаДерева.РезультатПрохожденияТестовСценария.Вставить("РезультатПрохожденияТестовШагов",РезультатПрохожденияТестовШагов); - ЭлементыФормы.тпДеревоТестов.ТекущаяСтрока = СтрокаДерева; - - - СтрокаФичи = НайтиСтрокуФичиЧерезРодителя(СтрокаДерева); ОбработкаСвязаннаяСИсполняемойФичей = ПолучитьОбработкаСвязаннаяСИсполняемойФичей(СтрокаФичи.ПолныйПуть); @@ -2438,9 +2358,6 @@ Для каждого СтрСтроки Из Дерево.Строки Цикл СтрСтроки.РезультатПрохожденияТестовСценария = Неопределено; СтрСтроки.Статус = ""; - //СтрСтроки.ВремяНачала = Неопределено; - //СтрСтроки.ВремяОкончания = Неопределено; - //СтрСтроки.ОписаниеОшибки = Неопределено; ОчиститьПоляВДеревеДляПостроенияОтчетов(СтрСтроки); КонецЦикла; @@ -2732,8 +2649,9 @@ Попытка ДеревоФич = ПарсерФич.ПолучитьДеревоФич(СтруктураПараметров); Исключение + ИнформацияОбОшибке = ИнформацияОбОшибке(); СделатьСообщение("Ошибка при построении дерева."); - СделатьСообщение("" + ОписаниеОшибки()); + СделатьСообщение("" + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке)); Возврат; КонецПопытки; @@ -2832,29 +2750,9 @@ ЗагрузитьТестыЗагрузитьОднуФичу(); КонецПроцедуры -Процедура ОбновитьИконкуСтатуса(ОформлениеСтроки,ДанныеСтроки) - //Если ДанныеСтроки.Статус = "Success" Тогда - // Если ДанныеСтроки.Тип = "Шаг" Тогда - // ОформлениеСтроки.Ячейки.ПиктограммаСостояния.УстановитьКартинку(ЭлементыФормы.ПолеКартинкиПометкаЗеленый.Картинка); - // ИначеЕсли (ДанныеСтроки.Тип = "Сценарий") или (ДанныеСтроки.Тип = "Пример") Тогда - // ОформлениеСтроки.Ячейки.Имя.ЦветФона = ЦветУспешно; - // КонецЕсли; - //ИначеЕсли ДанныеСтроки.Статус = "Pending" Тогда - // Если ДанныеСтроки.Тип = "Шаг" Тогда - // ОформлениеСтроки.Ячейки.ПиктограммаСостояния.УстановитьКартинку(ЭлементыФормы.ПолеКартинкиПометкаЖелтый.Картинка); - // ИначеЕсли (ДанныеСтроки.Тип = "Сценарий") или (ДанныеСтроки.Тип = "Пример") Тогда - // ОформлениеСтроки.Ячейки.Имя.ЦветФона = ЦветОжидает; - // КонецЕсли; - //ИначеЕсли ДанныеСтроки.Статус = "Failed" Тогда - // Если ДанныеСтроки.Тип = "Шаг" Тогда - // ОформлениеСтроки.Ячейки.ПиктограммаСостояния.УстановитьКартинку(ЭлементыФормы.ПолеКартинкиПометкаКрасный.Картинка); - // ИначеЕсли (ДанныеСтроки.Тип = "Сценарий") или (ДанныеСтроки.Тип = "Пример") Тогда - // ОформлениеСтроки.Ячейки.Имя.ЦветФона = ЦветНеУспешно; - // КонецЕсли; - //КонецЕсли; +Процедура ОбновитьИконкуСтатуса(ОформлениеСтроки, ДанныеСтроки) КонецПроцедуры - Процедура тпДеревоТестовПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) Если ДанныеСтроки.Тип = "Каталог" Тогда ОформлениеСтроки.Ячейки.Имя.УстановитьКартинку(ЭлементыФормы.ПолеКартинкиКаталогТестов.Картинка); @@ -2967,7 +2865,6 @@ СтруктураПараметров.Вставить("КаталогиБиблиотек",КаталогиБиблиотек); СтруктураПараметров.Вставить("МассивРезультатОбходаКаталогов",Новый Массив); СтруктураПараметров.Вставить("МассивСообщений",Новый Массив); - //СтруктураПараметров.Вставить("ПутьКОбработке",Объект.DebugLog); СтруктураПараметров.Вставить("СписокТеговИсключение",СписокТеговИсключение); СтруктураПараметров.Вставить("СписокТеговОтбор",СписокТеговОтбор); СтруктураПараметров.Вставить("УдалитьСтрокуФичиИзДерева",Ложь); @@ -3178,9 +3075,6 @@ УдалитьФайлыКомандаСистемы(ИмяФайлаЛога); - - - //получение файлов ИмяФайлаЛога = ПолучитьИмяВременногоФайла("txt"); КомандаФайлы = "DIR """ + Путь + """ /A:-D /B " + ?(ИскатьВПодкаталогах,"/S","") + " > """ + ИмяФайлаЛога + """"; @@ -3263,7 +3157,8 @@ ВыполнитьКомандуОСБезПоказаЧерногоОкна(Команда); КонецЕсли; Исключение - Сообщить("КопироватьФайлКомандаСистемы:"+ОписаниеОшибки()+ " команда:"+Команда); + ИнформацияОбОшибке = ИнформацияОбОшибке(); + Сообщить("КопироватьФайлКомандаСистемы:"+ПодробноеПредставлениеОшибки(ИнформацияОбОшибке)+ " команда:"+Команда); КонецПопытки; Иначе КопироватьФайл(Откуда,Куда); @@ -3402,13 +3297,7 @@ КонецПроцедуры Функция ПолучитьПутьКВнешнимИнструментам() - Возврат КаталогИнструментов + "\tools\epf\utils\"; - - //ФайлЯдра = Новый Файл(ЭтотОбъект.ИспользуемоеИмяФайла); - //Результат = ФайлЯдра.Путь + "tools\epf\utils\"; - // - //Возврат Результат; КонецФункции // } Внешние интерфейстные инструменты diff --git "a/epf/bddRunner/bddRunner/Templates/\320\237\320\265\321\200\320\265\320\262\320\276\320\264\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\271/Ext/Template.xml" "b/epf/bddRunner/bddRunner/Templates/\320\237\320\265\321\200\320\265\320\262\320\276\320\264\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\271/Ext/Template.xml" index 94ffd893d..c733b2bb5 100644 --- "a/epf/bddRunner/bddRunner/Templates/\320\237\320\265\321\200\320\265\320\262\320\276\320\264\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\271/Ext/Template.xml" +++ "b/epf/bddRunner/bddRunner/Templates/\320\237\320\265\321\200\320\265\320\262\320\276\320\264\320\241\320\276\320\276\320\261\321\211\320\265\320\275\320\270\320\271/Ext/Template.xml" @@ -360,7 +360,7 @@ ru - ВерсияVB + ВерсияVanessaADD @@ -371,7 +371,7 @@ ru - ВерсияVB + ВерсияVanessaADD en diff --git a/epf/xddTestRunner/xddTestRunner/Ext/ObjectModule.bsl b/epf/xddTestRunner/xddTestRunner/Ext/ObjectModule.bsl index 148f79547..7e7cc9d56 100644 --- a/epf/xddTestRunner/xddTestRunner/Ext/ObjectModule.bsl +++ b/epf/xddTestRunner/xddTestRunner/Ext/ObjectModule.bsl @@ -1,6 +1,6 @@  Функция Версия() Экспорт - Версия = "5.7.0"; + Версия = "5.8.0"; Возврат Версия; КонецФункции @@ -10,7 +10,7 @@ Процедура Инициализация() ЗапустилиУФ = ТекущийРежимЗапуска() = РежимЗапускаКлиентскогоПриложения.УправляемоеПриложение; - + ЭтоВстроеннаяОбработка = ОбработкаЯвляетсяВстроеннойВКонфигурацию(); Если ЭтоВстроеннаяОбработка Тогда // Для встроенной в состав конфигурации обработки @@ -81,10 +81,10 @@ Процедура ИнициализацияНаСервере(Знач ОбъектКонтекстаЯдра) Экспорт КонтекстЯдра = ЭтотОбъект; - + ЗаполнитьЗначенияСвойств(КонтекстЯдра, ОбъектКонтекстаЯдра, "Плагины, ПутьФайлаНастроек"); Для каждого КлючЗначение Из КонтекстЯдра.Плагины Цикл - + ИмяПлагина = КлючЗначение.Значение; Плагин = КонтекстЯдра.Плагин(ИмяПлагина); Попытка @@ -92,15 +92,15 @@ Исключение Ошибка = "Возникла ошибка при загрузке плагина на сервере: "+ИмяПлагина + Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); Сообщить(Ошибка); - ЗафиксироватьОшибкуВЖурналеРегистрации("Плагины.Сервер", Ошибка, Истина); + ЗафиксироватьОшибкуВЖурналеРегистрации("Плагины.Сервер", Ошибка, Истина); КонецПопытки; - - КонецЦикла; + + КонецЦикла; КонецПроцедуры #КонецЕсли - + // } Plugins // { Выполнение тестов @@ -367,7 +367,7 @@ КонецФункции Процедура ВывестиОписаниеОшибкиВЛогФайл(Знач РезультатТестирования) - + Если РезультатТестирования.Состояние <> СостоянияТестов.НеРеализован Тогда ВывестиСообщениеВЛогФайл(" "); @@ -376,7 +376,7 @@ ВывестиСообщениеВЛогФайл(" =======:"); ВывестиСообщениеВЛогФайл(" "); - КонецЕсли; + КонецЕсли; КонецПроцедуры @@ -557,10 +557,10 @@ Если ВыводитьЛогВыполненияСценариевВТекстовыйФайл И ЗначениеЗаполнено(ИмяФайлаЛогВыполненияСценариев) Тогда ПлагинВыводВЛогФайл = Плагин("ВыводВЛогФайл"); - Если ПлагинВыводВЛогФайл.Открыт() Тогда + Если ПлагинВыводВЛогФайл.Открыт() Тогда ПлагинВыводВЛогФайл.Вывести(Сообщение); Иначе - ЗафиксироватьОшибкуВЖурналеРегистрации("Плагины.Сервер", Сообщение); + ЗафиксироватьОшибкуВЖурналеРегистрации("Плагины.Сервер", Сообщение); КонецЕсли; КонецЕсли; @@ -658,7 +658,7 @@ Процедура ЗафиксироватьОшибкуВЖурналеРегистрации(Знач Событие, Знач ОписаниеОшибки, ЭтоПредупреждение = Ложь) Экспорт Если Не ПустаяСтрока(ОписаниеОшибки) Тогда - Уровень = ?(ЭтоПредупреждение, УровеньЖурналаРегистрации.Предупреждение, УровеньЖурналаРегистрации.Ошибка); + Уровень = ?(ЭтоПредупреждение, УровеньЖурналаРегистрации.Предупреждение, УровеньЖурналаРегистрации.Ошибка); ЗаписьЖурналаРегистрации("xUnitFor1C." + Событие, Уровень, , , ОписаниеОшибки); КонецЕсли; КонецПроцедуры @@ -861,13 +861,13 @@ Если ОбъектПлагина = Неопределено Тогда Попытка - + Если ЭтоОтчет = Истина Тогда ОбъектПлагина = ВнешниеОтчеты.Создать(Идентификатор, Ложь); Иначе ОбъектПлагина = ВнешниеОбработки.Создать(Идентификатор, Ложь); КонецЕсли; - + Исключение ИнфоОшибки = ИнформацияОбОшибке(); СообщениеОшибки = "Не удалось создать объект. @@ -875,8 +875,8 @@ |Возможно, отличается имя файла внешней обработки/отчета и внутреннее имя этой обработки/отчета |. |" + ПодробноеПредставлениеОшибки(ИнфоОшибки); - - ВызватьИсключение СообщениеОшибки; + + ВызватьИсключение СообщениеОшибки; КонецПопытки; КонецЕсли; @@ -891,7 +891,7 @@ // Замена функции СтрШаблон на конфигурациях с режимом совместимости < 8.3.6 // При внедрении в конфигурацию с режимом совместимости >= 8.3.6 данную функцию необходимо удалить // -Функция СтрШаблон_(Знач СтрокаШаблон, Знач Парам1 = Неопределено, Знач Парам2 = Неопределено, +Функция СтрШаблон_(Знач СтрокаШаблон, Знач Парам1 = Неопределено, Знач Парам2 = Неопределено, Знач Парам3 = Неопределено, Знач Парам4 = Неопределено, Знач Парам5 = Неопределено) Экспорт МассивПараметров = Новый Массив; diff --git "a/epf/xddTestRunner/xddTestRunner/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/epf/xddTestRunner/xddTestRunner/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" index 99aab9c29..264a2118a 100644 --- "a/epf/xddTestRunner/xddTestRunner/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ "b/epf/xddTestRunner/xddTestRunner/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" @@ -250,18 +250,17 @@ ПомещаемыеФайлы = Новый Массив; ИдентификаторыПлагинов = Новый Соответствие; - ИдентификаторыИменПлагинов = Новый Соответствие; Если Объект.ИспользоватьПрямыеПутиФайлов Тогда ПомещенныеФайлы = Новый Массив; Для каждого ФайлОбработки Из НайденныеФайлы Цикл - ОписаниеПередаваемогоФайла = Новый Структура("Имя", ФайлОбработки.ПолноеИмя); + ПолноеИмяФайла = ФайлОбработки.ПолноеИмя; + ОписаниеПередаваемогоФайла = Новый Структура("Имя", ПолноеИмяФайла); ПомещенныеФайлы.Добавить(ОписаниеПередаваемогоФайла); ИмяПлагина = ФайлОбработки.ИмяБезРасширения; - ИдентификаторыПлагинов.Вставить(ФайлОбработки.ПолноеИмя, ИмяПлагина); - ИдентификаторыИменПлагинов.Вставить(ИмяПлагина, ФайлОбработки.ПолноеИмя); + ИдентификаторыПлагинов.Вставить(ПолноеИмяФайла, ИмяПлагина); КонецЦикла; @@ -270,18 +269,18 @@ Для каждого ФайлОбработки Из НайденныеФайлы Цикл - ПомещаемыйФайл = Новый ОписаниеПередаваемогоФайла(ФайлОбработки.ПолноеИмя); + ПолноеИмяФайла = ФайлОбработки.ПолноеИмя; + ПомещаемыйФайл = Новый ОписаниеПередаваемогоФайла(ПолноеИмяФайла); ПомещаемыеФайлы.Добавить(ПомещаемыйФайл); ИмяПлагина = ФайлОбработки.ИмяБезРасширения; - ИдентификаторыПлагинов.Вставить(ФайлОбработки.ПолноеИмя, ИмяПлагина); - ИдентификаторыИменПлагинов.Вставить(ИмяПлагина, ФайлОбработки.ПолноеИмя); + ИдентификаторыПлагинов.Вставить(ПолноеИмяФайла, ИмяПлагина); КонецЦикла; Если ПомещаемыеФайлы.Количество() Тогда - ПараметрыЗавершения = Новый Структура("ИдентификаторыПлагинов", ИдентификаторыПлагинов); Если Версия836ИлиВыше Тогда + ПараметрыЗавершения = Новый Структура("ИдентификаторыПлагинов", ИдентификаторыПлагинов); Выполнить("НачатьПомещениеФайлов(Новый ОписаниеОповещения(""ОбработчикПоискаКлиентскихПлагиновЗавершение"", ЭтаФорма, ПараметрыЗавершения), |ПомещаемыеФайлы, , Ложь, ЭтаФорма.УникальныйИдентификатор)"); Иначе @@ -308,14 +307,25 @@ Перем ЗагруженныйФайл, ИмяПлагина, ОписаниеПлагина, ОписанияПлагинов; Перем ОбъектПлагина, ОписанияПлагиновКлиент, ПодключенныеРанее, МассивФормПлагинов; - ОписанияПлагинов = ПодключитьПлагиныНаСервере(ЗагруженныеФайлы); + // в режиме совместимости 8.3.13 и выше для объекта ОписаниеПереданногоФайла свойство ПолноеИмя вместо Имя + ИспользоватьПолноеИмя = Ложь; + Если ЗагруженныеФайлы.Количество() > 0 Тогда + ИспользоватьПолноеИмя = ЕстьСвойство(ЗагруженныеФайлы[0], "ПолноеИмя"); + КонецЕсли; + + ОписанияПлагинов = ПодключитьПлагиныНаСервере(ЗагруженныеФайлы, ИспользоватьПолноеИмя); Для Каждого ЗагруженныйФайл Из ЗагруженныеФайлы Цикл Объект.ПлагиныЗагружены = Истина; + Если ИспользоватьПолноеИмя Тогда + КлючФайла = ЗагруженныйФайл.ПолноеИмя; + Иначе + КлючФайла = ЗагруженныйФайл.Имя; + КонецЕсли; - ИмяПлагина = ИдентификаторыПлагинов[ЗагруженныйФайл.Имя]; + ИмяПлагина = ИдентификаторыПлагинов[КлючФайла]; - ОписаниеПлагина = ОписанияПлагинов.Получить(ЗагруженныйФайл.Имя); + ОписаниеПлагина = ОписанияПлагинов.Получить(КлючФайла); Если ОписаниеПлагина = Неопределено Тогда Продолжить; КонецЕсли; @@ -335,12 +345,17 @@ КонецПроцедуры &НаСервере -Функция ПодключитьПлагиныНаСервере(Знач ЗагружаемыеФайлы) +Функция ПодключитьПлагиныНаСервере(Знач ЗагружаемыеФайлы, Знач ИспользоватьПолноеИмя) ОписанияПлагинов = Новый Соответствие; Для Каждого ОписаниеФайла Из ЗагружаемыеФайлы Цикл - ФайлОбъект = Новый Файл(ОписаниеФайла.Имя); + Если ИспользоватьПолноеИмя Тогда + КлючФайла = ОписаниеФайла.ПолноеИмя; + Иначе + КлючФайла = ОписаниеФайла.Имя; + КонецЕсли; + ФайлОбъект = Новый Файл(КлючФайла); ИмяПлагина = ФайлОбъект.ИмяБезРасширения; Если Не Объект.ИспользоватьПрямыеПутиФайлов Тогда @@ -348,11 +363,12 @@ КонецЕсли; Попытка - ОбъектОбработки = СоздатьФайлОбработкиНаСервере(ОписаниеФайла.Имя, ИмяПлагина); + ОбъектОбработки = СоздатьФайлОбработкиНаСервере(КлючФайла, ИмяПлагина); ОбъектОбработки.Инициализация(ЭтотОбъектНаСервере()); - ОписанияПлагинов.Вставить(ОписаниеФайла.Имя, ОбъектОбработки.ОписаниеПлагина(Объект.ТипыПлагинов)); + ОписанияПлагинов.Вставить(КлючФайла, ОбъектОбработки.ОписаниеПлагина(Объект.ТипыПлагинов)); Исключение - Ошибка = "Возникла ошибка при загрузке плагина: "+ОписаниеФайла.Имя + Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); + Ошибка = "Возникла ошибка при загрузке плагина: " + КлючФайла + + Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()); Сообщить(Ошибка); Продолжить; КонецПопытки; @@ -1701,7 +1717,7 @@ // используемое имя файла не используется Если НЕ Объект.ЭтоВстроеннаяОбработка Тогда ФайлЯдра = Новый Файл(ЭтаФорма["ИспользуемоеИмяФайла"]); - Результат = ФайлЯдра.Путь + "Plugins\"; + Результат = ФайлЯдра.Путь + "plugins/"; КонецЕсли; Возврат Результат; @@ -2304,4 +2320,23 @@ Возврат ВременныйФайл.Путь; КонецФункции +// Универсальная функция для проверки наличия свойств у значения любого типа данных +// +// Параметры: +// Объект - Любой - Коллекция любого типа, для которой необходимо проверить наличие свойства +// ИмяСвойства - Строка - имя проверяемого свойства +// +// Возвращаемое значение: +// Булево - Истина, если свойство существует +// +Функция ЕстьСвойство(Знач Объект, Знач ИмяСвойства) Экспорт + НачальноеЗНачение = Новый УникальныйИдентификатор(); + ЗначениеРеквизита = Новый Структура(ИмяСвойства, НачальноеЗНачение); + ЗаполнитьЗначенияСвойств(ЗначениеРеквизита, Объект); + Если ЗначениеРеквизита[ИмяСвойства] <> НачальноеЗНачение Тогда + Возврат Истина; + КонецЕсли; + Возврат Ложь; +КонецФункции + // } Вспомогательные методы diff --git "a/epf/xddTestRunner/xddTestRunner/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/epf/xddTestRunner/xddTestRunner/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" index 9fe532807..668322727 100644 --- "a/epf/xddTestRunner/xddTestRunner/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ "b/epf/xddTestRunner/xddTestRunner/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" @@ -2,15 +2,15 @@ // { События формы Процедура ПриОткрытии() ИспользоватьПрямыеПутиФайлов = Истина; - + ЗагрузитьПлагины(); КэшироватьПеречисленияПлагинов(); - + ПервичнаяНастройка(); ОбновитьКнопкиИсторииЗагрузкиТестов(); ЭтаФорма.Заголовок = ЭтотОбъект.ЗаголовокФормы(); - + КаталогПроекта = КаталогВременныхФайлов(); ЭтоПакетныйЗапуск = ЗначениеЗаполнено(ПараметрЗапуска); @@ -48,20 +48,20 @@ Процедура ВыполнитьТестыНаКлиенте(Знач Фильтр = Неопределено) Если ЗначениеЗаполнено(ЭтаФорма.ДеревоОтЗагрузчика) Тогда ОчиститьСообщения(); - + ПервичнаяНастройка(); - + КоличествоТестовыхМетодов = ЭтотОбъект.ПолучитьКоличествоТестовыхМетодов(ЭтаФорма.ДеревоОтЗагрузчика, Фильтр); ИнициализироватьИндикаторВыполнения(КоличествоТестовыхМетодов); - + РезультатыТестирования = ВыполнитьТесты(ЭтаФорма.Загрузчик, ЭтаФорма.ДеревоОтЗагрузчика, Фильтр, ЭтаФорма); - + ОбновитьДеревоТестовНаОснованииРезультатовТестирования(ДеревоТестов.Строки[0], РезультатыТестирования); - + ГенераторОтчетаMXL = Плагин("ГенераторОтчетаMXL"); Отчет = ГенераторОтчетаMXL.СоздатьОтчет(ЭтотОбъект, РезультатыТестирования); ГенераторОтчетаMXL.Показать(Отчет); - + //ГенераторОтчетаMXL = Плагин("ГенераторОтчетаJUnitXML_TFS"); //Отчет = ГенераторОтчетаMXL.СоздатьОтчет(ЭтотОбъект, РезультатыТестирования); //ГенераторОтчетаMXL.Показать(Отчет); @@ -97,7 +97,7 @@ // Для встроенного в состав конфигурации браузера тестов // открываем форму обработки заново Если ЭтоВстроеннаяОбработка Тогда - ЭтотОбъект.ПолучитьФорму(МетаФорма.Имя).Открыть(); + ЭтотОбъект.ПолучитьФорму(МетаФорма.Имя).Открыть(); Иначе Выполнить("НайденноеИмяФайла = ЭтотОбъект.ИспользуемоеИмяФайла;"); ВнешниеОбработки.Создать(НайденноеИмяФайла, Ложь).ПолучитьФорму(МетаФорма.Имя).Открыть(); @@ -105,7 +105,7 @@ КонецЕсли; КонецЕсли; КонецЦикла; - + КонецПроцедуры Процедура СброситьЦиклическиеСсылки() @@ -114,9 +114,9 @@ КонецПроцедуры Процедура ПерезагрузитьПоследниеТестыПоИстории(Элемент = Неопределено) - + ПерезагрузитьНастройкиИзФайла(); - + ИсторияЗагрузкиТестов = ЭтотОбъект.Настройки.ИсторияЗагрузкиТестов; Если ИсторияЗагрузкиТестов.Количество() > 0 Тогда ЭлементИстории = ИсторияЗагрузкиТестов[0]; @@ -127,7 +127,7 @@ Сообщить("Не удалось загрузить тесты из истории <" + ЭлементИстории.ИдентификаторЗагрузчика + ": " + ЭлементИстории.Путь + ">" + Символы.ПС + ОписаниеОшибки()); КонецПопытки; КонецЕсли; - + КонецПроцедуры Процедура КнопкаИнструментыГенераторМакетовДанных(Кнопка) @@ -154,10 +154,10 @@ ДиалогВыбора.МножественныйВыбор = Ложь; ДиалогВыбора.ПроверятьСуществованиеФайла = Истина; ДиалогВыбора.ПолноеИмяФайла = ПутьФайлаНастроек(); - + ОповещениеВыбора = Новый ОписаниеОповещения("ЗагрузитьНастройкиИзФайлаЗавершение", ЭтаФорма); ДиалогВыбора.Показать(ОповещениеВыбора); - + КонецПроцедуры // } Управляющие воздействия пользователя @@ -165,7 +165,7 @@ // { Плагины Процедура ЗагрузитьПлагины() ЭтотОбъект.Плагины = Новый Структура; - + // Если браузер тестов встроен в состав конфигурации, то плагины // получаем из встроеной подсистемы xUnitFor1C.Plugins Если ЭтотОбъект.ЭтоВстроеннаяОбработка Тогда @@ -186,7 +186,7 @@ КонецПопытки; КонецЦикла; КонецЕсли; - + ДобавитьКомандыЗагрузчиковНаФорме(); КонецПроцедуры @@ -197,7 +197,7 @@ Процедура ДобавитьКомандыЗагрузчиковНаФорме() ОписанияЗагрузчиков = ЭтотОбъект.ПолучитьОписанияПлагиновПоТипу(ЭтотОбъект.ТипыПлагинов.Загрузчик); Меню = ЭлементыФормы.КнопкаЗагрузитьТесты.Кнопки; - + ИндексКнопки = 0; Для каждого ОписаниеПлагина Из ОписанияЗагрузчиков Цикл НоваяКнопка = Меню.Вставить(ИндексКнопки, ОписаниеПлагина.Идентификатор, ТипКнопкиКоманднойПанели.Действие, ОписаниеПлагина.Представление, Новый Действие("Подключаемый_ИнтерактивныйВызовЗагрузчика")); @@ -214,28 +214,28 @@ Если ЗначениеЗаполнено(Путь) Тогда ЗагрузитьТесты(ИдентификаторЗагрузчика, Путь); КонецЕсли; -КонецПроцедуры +КонецПроцедуры Процедура ЗагрузитьТесты(Знач ИдентификаторЗагрузчика, Знач Путь) ИнициализироватьИндикаторВыполнения(); - + ЭтаФорма.Загрузчик = ЭтотОбъект.Плагин(ИдентификаторЗагрузчика); - + Попытка ЭтаФорма.ДеревоОтЗагрузчика = ЭтаФорма.Загрузчик.Загрузить(ЭтотОбъект, Путь); Исключение Сообщить(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); Возврат; КонецПопытки; - + ОбновитьИменаИПредставлениеТестов(ДеревоОтЗагрузчика); - + ДеревоТестов.Строки.Очистить(); ЗаполнитьДеревоТестов(ДеревоТестов, ДеревоОтЗагрузчика); - + КоличествоТестовыхСлучаев = ЗаполнитьКоличествоТестовыхСлучаевПоВсемуДеревуТестов(ДеревоТестов); РазвернутьСтрокиДерева(КоличествоТестовыхСлучаев < 30); - + ЭтотОбъект.СохранитьВИсториюЗагрузкиТестов(ИдентификаторЗагрузчика, Путь); ОбновитьКнопкиИсторииЗагрузкиТестов(); КонецПроцедуры @@ -245,7 +245,7 @@ СтрокаКонтейнера.Имя = КонтейнерДереваТестовЗагрузчика.Имя; СтрокаКонтейнера.ИконкаУзла = КонтейнерДереваТестовЗагрузчика.ИконкаУзла; СтрокаКонтейнера.Ключ = КонтейнерДереваТестовЗагрузчика.Ключ; - + Для каждого ЭлементКоллекции Из КонтейнерДереваТестовЗагрузчика.Строки Цикл Если ЭлементКоллекции.Тип = ЭтотОбъект.ТипыУзловДереваТестов.Контейнер Тогда ЗаполнитьДеревоТестов(СтрокаКонтейнера, ЭлементКоллекции); @@ -260,7 +260,7 @@ КонецПроцедуры Процедура ОбновитьИменаИПредставлениеТестов(Знач КонтейнерДереваТестовЗагрузчика) - + НовоеИмя = ПредставлениеТеста(КонтейнерДереваТестовЗагрузчика.Имя); КонтейнерДереваТестовЗагрузчика.Имя = НовоеИмя; Отладка(СтрШаблон_("КонтейнерДереваТестовЗагрузчика.Имя %1, Новое имя %2", КонтейнерДереваТестовЗагрузчика.Имя, НовоеИмя)); @@ -296,7 +296,7 @@ СтрокаДерева.КоличествоТестов = КоличествоТестовВСтроке; ОбщееКоличествоТестов = ОбщееКоличествоТестов + КоличествоТестовВСтроке; КонецЦикла; - + Возврат ОбщееКоличествоТестов; КонецФункции @@ -351,20 +351,20 @@ // { Пакетный запуск Процедура ВыполнитьПакетныйЗапуск(Знач ПараметрЗапуска) Перем РезультатыТестирования; - + Попытка ПарсерКоманднойСтроки = ЭтотОбъект.Плагин("ПарсерКоманднойСтроки"); ПараметрыЗапуска = ПарсерКоманднойСтроки.Разобрать(ПараметрЗапуска); - + ВозможныеКлючи = ПарсерКоманднойСтроки.ВозможныеКлючи; - + Если ПараметрыЗапуска.Свойство(ВозможныеКлючи.debug) Тогда ФлагОтладки = Истина; КонецЕсли; ПлагинНастройки = Плагин("Настройки"); - + Если ФлагОтладки Тогда Отладка(""); Отладка("ПараметрЗапуска <" + ПараметрЗапуска + ">"); @@ -372,13 +372,13 @@ Отладка("Переданные параметры:"); ПлагинНастройки.ПоказатьСвойстваВРежимеОтладки(ПараметрыЗапуска); Отладка(""); - КонецЕсли; - + КонецЕсли; + ПлагинНастройки.ДобавитьНастройки(ПараметрыЗапуска); - + НастройкиИзПлагина = ПлагинНастройки.ПолучитьНастройки(); Для каждого КлючЗначение Из НастройкиИзПлагина Цикл - Настройки.Вставить(КлючЗначение.Ключ, КлючЗначение.Ключ); + Настройки.Вставить(КлючЗначение.Ключ, КлючЗначение.Ключ); КонецЦикла; Параметры_xddConfig = Неопределено; @@ -396,62 +396,62 @@ РезультатыТестирования = ЗагрузитьИВыполнитьТесты_ПакетныйРежим(Параметры_xddRun); Если РезультатыТестирования = Неопределено Тогда ВывестиСообщение("Не найдено результатов тестирования"); - КонецЕсли; + КонецЕсли; КонецЕсли; - + Параметры_xddReport = Неопределено; Если ЗначениеЗаполнено(РезультатыТестирования) И ПараметрыЗапуска.Свойство(ВозможныеКлючи.xddReport, Параметры_xddReport) Тогда СформироватьОтчетОТестированииИЭкспортировать_ПакетныйРежим(Параметры_xddReport, РезультатыТестирования); КонецЕсли; - + Параметры_xddExitCodePath = Неопределено; Если ПараметрыЗапуска.Свойство(ВозможныеКлючи.xddExitCodePath, Параметры_xddExitCodePath) Тогда СформироватьФайлКодаВозврата(Параметры_xddExitCodePath, РезультатыТестирования); КонецЕсли; - + Если ПараметрыЗапуска.Свойство(ВозможныеКлючи.xddShutdown) Тогда ЗавершитьРаботуСистемы(Ложь); КонецЕсли; - + Исключение Инфо = ИнформацияОбОшибке(); ОписаниеОшибки = "Ошибка загрузки и выполнения тестов в пакетном режиме |" + ПодробноеПредставлениеОшибки(Инфо); - + ЗафиксироватьОшибкуВЖурналеРегистрации("ПакетныйРежим", ОписаниеОшибки); - + ВывестиСообщение(ОписаниеОшибки, СтатусСообщения.ОченьВажное); - + ЗавершитьРаботуСистемы(Ложь); КонецПопытки; - + КонецПроцедуры Функция ЗагрузитьИВыполнитьТесты_ПакетныйРежим(Знач Параметры_xddRun) - + ПервичнаяНастройка(); - + ИдентификаторЗагрузчика = Параметры_xddRun[0]; Загрузчик = ЭтотОбъект.Плагин(ИдентификаторЗагрузчика); - + ПутьКТестам = Параметры_xddRun[1]; ДеревоТестовОтЗагрузчика = Загрузчик.Загрузить(ЭтотОбъект, ПутьКТестам); - + Если ЗначениеЗаполнено(ДеревоТестовОтЗагрузчика.Строки) Тогда ОбновитьИменаИПредставлениеТестов(ДеревоТестовОтЗагрузчика); - + РезультатыТестирования = ЭтотОбъект.ВыполнитьТесты(Загрузчик, ДеревоТестовОтЗагрузчика); Иначе - + ВывестиСообщение("Не найдено загруженных тестов. Выполнение тестов завершается"); - + КонецЕсли; - + Возврат РезультатыТестирования; КонецФункции Процедура СформироватьОтчетОТестированииИЭкспортировать_ПакетныйРежим(Знач Параметры_xddReport, Знач РезультатыТестирования) - Если Параметры_xddReport.Количество() > 0 И ТипЗнч(Параметры_xddReport[0]) <> Тип("ФиксированныйМассив") Тогда + Если Параметры_xddReport.Количество() > 0 И ТипЗнч(Параметры_xddReport[0]) <> Тип("ФиксированныйМассив") Тогда НовыйМассивПараметров = Новый Массив; НовыйМассивПараметров.Добавить(Параметры_xddReport); Параметры_xddReport = НовыйМассивПараметров; @@ -460,14 +460,14 @@ Попытка ИдентификаторГенератораОтчета = ОчередныеПараметры[0]; ГенераторОтчета = ЭтотОбъект.Плагин(ИдентификаторГенератораОтчета); - + НаборОтчетов = ГенераторОтчета.СоздатьОтчет(ЭтаФорма, РезультатыТестирования); Если ТипЗнч(НаборОтчетов) <> Тип("Массив") Тогда НовыйНаборОтчетов = Новый Массив; НовыйНаборОтчетов.Добавить(НаборОтчетов); НаборОтчетов = НовыйНаборОтчетов; - КонецЕсли; - + КонецЕсли; + ПутьКОтчету = ОчередныеПараметры[1]; ОписаниеОшибки = СтрШаблон_("ОФ ПутьКОтчету %1", ПутьКОтчету); @@ -475,12 +475,12 @@ Для Каждого Отчет Из НаборОтчетов Цикл ГенераторОтчета.Экспортировать(Отчет, ПутьКОтчету); - КонецЦикла; + КонецЦикла; Исключение Инфо = ИнформацияОбОшибке(); ОписаниеОшибки = "Ошибка формирования и экспорта отчета о тестировании в пакетном режиме |" + ПодробноеПредставлениеОшибки(Инфо); - + ЗафиксироватьОшибкуВЖурналеРегистрации(ИдентификаторГенератораОтчета, ОписаниеОшибки); ВывестиСообщение(ОписаниеОшибки, СтатусСообщения.ОченьВажное); КонецПопытки; @@ -491,14 +491,14 @@ Попытка ИдентификаторПлагина = Параметры_xddExitCodePath[0]; ГенераторКодаВозврата = ЭтотОбъект.Плагин(ИдентификаторПлагина); - + ПутьФайлаКодаВозврата = Параметры_xddExitCodePath[1]; ГенераторКодаВозврата.СформироватьФайл(ЭтотОбъект, ПутьФайлаКодаВозврата, РезультатыТестирования); Исключение Инфо = ИнформацияОбОшибке(); ОписаниеОшибки = "Ошибка формирования файла статуса возврата при выполнении тестов в пакетном режиме |" + ПодробноеПредставлениеОшибки(Инфо); - + ЗафиксироватьОшибкуВЖурналеРегистрации("ПакетныйРежим", ОписаниеОшибки); ВывестиСообщение(ОписаниеОшибки, СтатусСообщения.ОченьВажное); КонецПопытки; @@ -515,7 +515,7 @@ Если ИмяИнструмента = "UILogToScript" Тогда ИмяИнструмента = "ПреобразованиеЖурналаДействийПользователя"; КонецЕсли; - НоваяФорма = ПолучитьФорму("Обработка." + ИмяИнструмента + "." + ИмяФормы); + НоваяФорма = ПолучитьФорму("Обработка." + ИмяИнструмента + "." + ИмяФормы); Иначе Если Не ПустаяСтрока(ПутьИнструмента) Тогда ПутьКВнешнимИнструментам = ПутьИнструмента + "\"; @@ -541,20 +541,20 @@ Функция ПолучитьПутьКПлагинам() // Для встроенной в состав конфигурации обработки - // имя используемого файла не получаем, т.к. плагины + // имя используемого файла не получаем, т.к. плагины // получаются из встроенной подсистемы Если НЕ ЭтотОбъект.ЭтоВстроеннаяОбработка Тогда ФайлЯдра = Новый Файл(ЭтаФорма["ИспользуемоеИмяФайла"]); - Результат = ФайлЯдра.Путь + "Plugins\"; + Результат = ФайлЯдра.Путь + "plugins/"; КонецЕсли; - + Возврат Результат; КонецФункции Функция ПолучитьПутьКВнешнимИнструментам() ФайлЯдра = Новый Файл(ЭтотОбъект.ИспользуемоеИмяФайла); Результат = ФайлЯдра.Путь + "tools\epf\utils\"; - + Возврат Результат; КонецФункции // } Внешние интерфейстные инструменты @@ -568,23 +568,23 @@ // { работа с настройками Процедура ЗагрузитьНастройкиИзФайлаЗавершение(ВыбранныеФайлы, ДопПараметры) Экспорт - + Если ВыбранныеФайлы = Неопределено или ВыбранныеФайлы.Количество() = 0 Тогда Возврат; - КонецЕсли; - + КонецЕсли; + ФайлНастройки = ВыбранныеФайлы.Получить(0); ПутьФайлаНастроек = ФайлНастройки; ПлагинНастроек = Плагин("Настройки"); ПлагинНастроек.Обновить(); - + КонецПроцедуры Процедура ПерезагрузитьНастройкиИзФайла() - - Если Не ПустаяСтрока(ПутьФайлаНастроек()) Тогда - + + Если Не ПустаяСтрока(ПутьФайлаНастроек()) Тогда + Попытка ПервичнаяНастройка(); //Плагин("Настройки").Обновить(); @@ -592,31 +592,31 @@ Сообщить("Не удалось загрузить настройки из файла '" + ПутьФайлаНастроек() + "' по причине: "); Сообщить(ОписаниеОшибки()); КонецПопытки; - + КонецЕсли; - + КонецПроцедуры Процедура ПервичнаяНастройка() - + Перем ПлагинВыводВЛогФайл, ПлагинНастроек; - + Если Не ЗначениеЗаполнено(Настройки) Тогда Настройки = Новый Структура; КонецЕсли; - + НаборНастроекПоУмолчанию = СоздатьНаборНастроекПоУмолчанию(); ЗаменитьНесуществующиеНастройкиЗначениямиПоУмолчанию(Настройки, НаборНастроекПоУмолчанию); - + ПлагинНастроек = Плагин("Настройки"); ПлагинНастроек.Обновить(); - + Для Каждого КлючЗначение Из ПлагинНастроек.ПолучитьНастройки() Цикл Настройки.Вставить(КлючЗначение.Ключ, КлючЗначение.Значение); КонецЦикла; - + ФлагОтладки = ПлагинНастроек.ПолучитьНастройку("Отладка") = Истина; - + ВыводитьЛогВыполненияСценариевВТекстовыйФайл = Ложь; Если ПлагинНастроек.ЕстьНастройка("ДелатьЛогВыполненияСценариевВТекстовыйФайл") Тогда ВыводитьЛогВыполненияСценариевВТекстовыйФайл = Настройки.ДелатьЛогВыполненияСценариевВТекстовыйФайл; @@ -624,17 +624,17 @@ ИмяФайлаЛогВыполненияСценариев = ""; Если ПлагинНастроек.ЕстьНастройка("ИмяФайлаЛогВыполненияСценариев") Тогда ИмяФайлаЛогВыполненияСценариев = Настройки.ИмяФайлаЛогВыполненияСценариев; - //Иначе + //Иначе // ИмяФайлаЛогВыполненияСценариев = ПолучитьИмяВременногоФайла(".log"); КонецЕсли; - + Если ВыводитьЛогВыполненияСценариевВТекстовыйФайл Тогда - + ПлагинВыводВЛогФайл = Плагин("ВыводВЛогФайл"); - + ПлагинВыводВЛогФайл.ОткрытьФайл(ИмяФайлаЛогВыполненияСценариев); КонецЕсли; - + Отладка(СтрШаблон_("ВыводитьЛогВыполненияСценариевВТекстовыйФайл <%1>", ВыводитьЛогВыполненияСценариевВТекстовыйФайл)); Отладка(СтрШаблон_("ИмяФайлаЛогВыполненияСценариев <%1>", ИмяФайлаЛогВыполненияСценариев)); @@ -643,18 +643,18 @@ Функция СоздатьНаборНастроекПоУмолчанию() Рез = Новый Структура; - + Рез.Вставить("Отладка", Ложь); Рез.Вставить("ДелатьЛогВыполненияСценариевВТекстовыйФайл", Ложь); Рез.Вставить("ИмяФайлаЛогВыполненияСценариев", ""); Рез.Вставить("ДобавлятьИмяПользователяВПредставлениеТеста", Ложь); - + Возврат Новый ФиксированнаяСтруктура(Рез); КонецФункции // () Процедура ЗаменитьНесуществующиеНастройкиЗначениямиПоУмолчанию(Знач Настройки, Знач НаборНастроекПоУмолчанию) - + Для каждого КлючЗначение Из НаборНастроекПоУмолчанию Цикл Если Не Настройки.Свойство(КлючЗначение.Ключ) Тогда Настройки.Вставить(КлючЗначение.Ключ, КлючЗначение.Значение); diff --git "a/features/Core/FeatureReader/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\222\321\213\321\207\320\270\321\201\320\273\320\265\320\275\320\270\321\217\320\237\320\265\321\200\320\265\320\274\320\265\320\275\320\275\321\213\321\205.feature" "b/features/Core/FeatureReader/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\222\321\213\321\207\320\270\321\201\320\273\320\265\320\275\320\270\321\217\320\237\320\265\321\200\320\265\320\274\320\265\320\275\320\275\321\213\321\205.feature" new file mode 100644 index 000000000..ceadbc5ed --- /dev/null +++ "b/features/Core/FeatureReader/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\222\321\213\321\207\320\270\321\201\320\273\320\265\320\275\320\270\321\217\320\237\320\265\321\200\320\265\320\274\320\265\320\275\320\275\321\213\321\205.feature" @@ -0,0 +1,36 @@ +# language: ru + +Функционал: Автоматическое вычисление выражений при передаче параметров в шаги + Как Разработчик + Я Хочу чтобы была простая возможность в любом шаге использовать переменные контекста + +Сценарий: Вычисление переменной контекста в обычном параметре-строке + Когда Я запоминаю строку "Привет" как переменную "ПроверяемаяПеременная" + Тогда переменная "ПроверяемаяПеременная" имеет значение "$ПроверяемаяПеременная$" + И выражение внутреннего языка "Контекст.ПроверяемаяПеременная = $ПроверяемаяПеременная$" Истинно + И выражение внутреннего языка '"Привет" = $ПроверяемаяПеременная$' Истинно + И Я запоминаю значение выражения 'Строка("Привет" = $ПроверяемаяПеременная$)' в переменную "Утверждение" + Тогда переменная "Утверждение" имеет значение "Да" + +Сценарий: Вычисление сложного выражения с переменными контекста в обычном параметре-строке + Когда Я запоминаю строку "Привет" как переменную "ПроверяемаяПеременная" + Когда Я запоминаю строку "$ПроверяемаяПеременная$" как переменную "ДругаяПроверяемаяПеременная" + Тогда переменная "ДругаяПроверяемаяПеременная" имеет значение "$ПроверяемаяПеременная$" + И выражение внутреннего языка "$ДругаяПроверяемаяПеременная$ = $ПроверяемаяПеременная$" Истинно + +Сценарий: Вычисление глобальной переменной контекста в обычном параметре-строке + Когда Я запоминаю строку "Привет" как переменную "ГлобальнаяПроверяемаяПеременная" глобально + Тогда переменная "ГлобальнаяПроверяемаяПеременная" имеет значение "$$ГлобальнаяПроверяемаяПеременная$$" глобально + И выражение внутреннего языка "КонтекстСохраняемый.ГлобальнаяПроверяемаяПеременная = $$ГлобальнаяПроверяемаяПеременная$$" Истинно + И выражение внутреннего языка '"Привет" = $$ГлобальнаяПроверяемаяПеременная$$' Истинно + И Я запоминаю значение выражения 'Строка("Привет" = $$ГлобальнаяПроверяемаяПеременная$$)' в переменную "Утверждение" + Тогда переменная "Утверждение" имеет значение "Да" + +Сценарий: Проверки строки с экранированием доллара + Когда Я запоминаю строку "$$$Привет$$$" как переменную "ПроверяемаяПеременная" + Тогда переменная "ПроверяемаяПеременная" имеет значение "$$$Привет$$$" + И затем я выполняю код встроенного языка + |Контекст.Вставить("БезЭкранирования", СтрДлина($ПроверяемаяПеременная$));| + И переменная "БезЭкранирования" имеет значение 12 + И Я запоминаю значение выражения "СтрДлина($ПроверяемаяПеременная$)" в переменную "Результат" + И переменная "Результат" имеет значение 47 diff --git "a/features/Core/TestClient/Issue_461_\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260_\320\262\321\200\320\265\320\274\320\265\320\275\320\275\320\276\320\271_\321\204\320\270\321\207\320\270.feature" "b/features/Core/TestClient/Issue_461_\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260_\320\262\321\200\320\265\320\274\320\265\320\275\320\275\320\276\320\271_\321\204\320\270\321\207\320\270.feature" index bdca1c675..8f537c82d 100644 --- "a/features/Core/TestClient/Issue_461_\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260_\320\262\321\200\320\265\320\274\320\265\320\275\320\275\320\276\320\271_\321\204\320\270\321\207\320\270.feature" +++ "b/features/Core/TestClient/Issue_461_\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\260_\320\262\321\200\320\265\320\274\320\265\320\275\320\275\320\276\320\271_\321\204\320\270\321\207\320\270.feature" @@ -16,8 +16,8 @@ И Пауза 3 И таблица формы VanessaADD с именем "ДеревоТестов" стала равной: | 'Наименование' | - | 'temp.feature' | - | 'temp' | + | 'vanessa-add-temp.feature' | + | 'vanessa-add-temp' | | 'Контекст' | | 'Когда Шаг один, который будет веткой дерева в секции Контекст' | | 'Когда В панели разделов я выбираю "Основная"' | @@ -38,8 +38,8 @@ И Пауза 3 И таблица формы VanessaADD с именем "ДеревоТестов" стала равной: | 'Наименование' | - | 'temp.feature' | - | 'temp' | + | 'vanessa-add-temp.feature' | + | 'vanessa-add-temp' | | 'Контекст' | | 'Дано Я запускаю сценарий открытия TestClient или подключаю уже существующий' | # | 'Дано Я открыл новый сеанс TestClient или подключил уже существующий' | diff --git "a/features/Core/TestClient/step_definitions/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\321\217XML\320\224\320\265\320\271\321\201\321\202\320\262\320\270\320\271\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\321\217XML\320\224\320\265\320\271\321\201\321\202\320\262\320\270\320\271\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217/Templates/Xml_1\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\271/Ext/Template.txt" "b/features/Core/TestClient/step_definitions/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\321\217XML\320\224\320\265\320\271\321\201\321\202\320\262\320\270\320\271\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\321\217XML\320\224\320\265\320\271\321\201\321\202\320\262\320\270\320\271\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217/Templates/Xml_1\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\271/Ext/Template.txt" index 29322a6bc..1293333d0 100644 --- "a/features/Core/TestClient/step_definitions/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\321\217XML\320\224\320\265\320\271\321\201\321\202\320\262\320\270\320\271\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\321\217XML\320\224\320\265\320\271\321\201\321\202\320\262\320\270\320\271\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217/Templates/Xml_1\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\271/Ext/Template.txt" +++ "b/features/Core/TestClient/step_definitions/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\321\217XML\320\224\320\265\320\271\321\201\321\202\320\262\320\270\320\271\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\237\321\200\320\265\320\276\320\261\321\200\320\260\320\267\320\276\320\262\320\260\320\275\320\270\321\217XML\320\224\320\265\320\271\321\201\321\202\320\262\320\270\320\271\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\217/Templates/Xml_1\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\271/Ext/Template.txt" @@ -17,8 +17,8 @@ И я перехожу к закладке "Работа с UI" И я перехожу к закладке "Функциональность закладки" И в поле 'СгенерированныйСценарий' я ввожу текст - |'И В командном интерфейсе я выбираю \'Основная\' \'Справочник1\''| - |'И В командном интерфейсе я выбираю \'Основная\' \'Справочник1\''| - |''| + | И В командном интерфейсе я выбираю 'Основная' 'Справочник1' | + | И В командном интерфейсе я выбираю 'Основная' 'Справочник1' | + | '' | И я перехожу к закладке "Сценарий поведения код" И я перехожу к закладке "Результат генерации" diff --git "a/features/libraries/TestClients/step_definitions/\320\240\320\260\320\261\320\276\321\202\320\260\320\241TestClient/\320\240\320\260\320\261\320\276\321\202\320\260\320\241TestClient/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/features/libraries/TestClients/step_definitions/\320\240\320\260\320\261\320\276\321\202\320\260\320\241TestClient/\320\240\320\260\320\261\320\276\321\202\320\260\320\241TestClient/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" index 7bab6bec3..ec92c9b7b 100644 --- "a/features/libraries/TestClients/step_definitions/\320\240\320\260\320\261\320\276\321\202\320\260\320\241TestClient/\320\240\320\260\320\261\320\276\321\202\320\260\320\241TestClient/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ "b/features/libraries/TestClients/step_definitions/\320\240\320\260\320\261\320\276\321\202\320\260\320\241TestClient/\320\240\320\260\320\261\320\276\321\202\320\260\320\241TestClient/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" @@ -425,7 +425,7 @@ Если СтрокаАутентификации <> "" И Найти(СтрокаАутентификации, "/N") = 0 Тогда ВызватьИсключение "Параметр <Логин> не задан"; КонецЕсли; - Стр.ДопПараметры = СтрокаАутентификации + " " +ДопПараметр; + Стр.ДопПараметры = СокрЛП(СтрокаАутентификации + " " +ДопПараметр); ДанныеКлиентовТестирования = Ванесса.ДанныеКлиентовТестирования; diff --git "a/features/libraries/UITestRunner/step_definitions/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\234\320\260\320\272\320\265\321\202\320\260/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\234\320\260\320\272\320\265\321\202\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/features/libraries/UITestRunner/step_definitions/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\234\320\260\320\272\320\265\321\202\320\260/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\234\320\260\320\272\320\265\321\202\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" index 67f407f82..71d4c361f 100644 --- "a/features/libraries/UITestRunner/step_definitions/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\234\320\260\320\272\320\265\321\202\320\260/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\234\320\260\320\272\320\265\321\202\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ "b/features/libraries/UITestRunner/step_definitions/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\234\320\260\320\272\320\265\321\202\320\260/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\227\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\234\320\260\320\272\320\265\321\202\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" @@ -73,10 +73,6 @@ Макет = Ванесса.ПолучитьМакетОбработки(ИмяМакета); ТабДокБыло = Макет; - Если Макет = Неопределено Тогда - //будем искать макет в каталоге проекта - ТабДокБыло = Ванесса.НайтиМакетВКаталогеПроекта(ИмяМакета); - КонецЕсли; ПолеТабличногоДокумента = Ванесса.НайтиРеквизитОткрытойФормыПоЗаголовку(ИмяРеквизита,Истина); @@ -99,7 +95,8 @@ &НаКлиенте //И табличный документ "ТабДок" соответствует макету "Макет1" //@ОбластьТабличногоДокументаСоответствуетМакету(Парам01,Парам02,Парам03) -Процедура ОбластьТабличногоДокументаСоответствуетМакету(ИмяОбласти,ИмяРеквизита,ИмяМакета,СравнениеПоШаблону = Ложь) Экспорт +Процедура ОбластьТабличногоДокументаСоответствуетМакету(ИмяОбласти, ИмяРеквизита, ИмяМакета, + СравнениеПоШаблону = Ложь) Экспорт НачСтр = -1; НачКол = -1; КолСтр = -1; @@ -116,10 +113,6 @@ Макет = Ванесса.ПолучитьМакетОбработки(ИмяМакета); ТабДокБыло = Макет; - Если Макет = Неопределено Тогда - //будем искать макет в каталоге проекта - ТабДокБыло = Ванесса.НайтиМакетВКаталогеПроекта(ИмяМакета); - КонецЕсли; ПолеТабличногоДокумента = Ванесса.НайтиРеквизитОткрытойФормыПоЗаголовку(ИмяРеквизита,Истина); @@ -159,8 +152,8 @@ &НаКлиенте //И табличный документ "ТабДок" равна макету "Макет1" //@ОбластьТабличногоДокументаРавнаМакету(Парам01,Парам02,Парам03) -Процедура ОбластьТабличногоДокументаРавнаМакету(ИмяОбласти,ИмяРеквизита,ИмяМакета) Экспорт - ОбластьТабличногоДокументаСоответствуетМакету(ИмяОбласти,ИмяРеквизита,ИмяМакета); +Процедура ОбластьТабличногоДокументаРавнаМакету(ИмяОбласти, ИмяРеквизита, ИмяМакета) Экспорт + ОбластьТабличногоДокументаСоответствуетМакету(ИмяОбласти, ИмяРеквизита, ИмяМакета); КонецПроцедуры &НаКлиенте diff --git "a/features/libraries/UITestRunner/step_definitions/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\320\276\320\274/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\320\276\320\274/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/features/libraries/UITestRunner/step_definitions/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\320\276\320\274/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\320\276\320\274/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" index 0de7bb614..a3fc11a7a 100644 --- "a/features/libraries/UITestRunner/step_definitions/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\320\276\320\274/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\320\276\320\274/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ "b/features/libraries/UITestRunner/step_definitions/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\320\276\320\274/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\320\276\320\274/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" @@ -2,6 +2,9 @@ &НаКлиенте Перем Ванесса; +&НаКлиенте +Перем Ожидаем; + &НаКлиенте Перем Контекст Экспорт; &НаКлиенте @@ -22,6 +25,7 @@ &НаКлиенте Функция ПолучитьСписокТестов(КонтекстФреймворкаBDD) Экспорт Ванесса = КонтекстФреймворкаBDD; + Ожидаем = Ванесса.Плагин("УтвержденияBDD"); СистемнаяИнформация = Новый СистемнаяИнформация; ВерсияПлатформыБольшеИлиРавна839 = Ванесса.ВерсияПриложенияБольшеИлиРавнаЧемЗаданнаяКлиент( @@ -1673,7 +1677,7 @@ КонецПроцедуры &НаКлиенте -Функция ПолучитьОшибкаНетКолонок(ИмяТЧ,ТабПарам) +Функция ПолучитьОшибкаНетКолонок(ИмяТЧ, ТабПарам) Стр = "Не найдены колонки: "; Попытка @@ -1683,21 +1687,24 @@ КонецПопытки; Попытка - КолонкиТаблицы = Таблица.НайтиОбъекты(); + КолонкиТаблицы = Таблица.ПолучитьПодчиненныеОбъекты(); //НайтиОбъекты(); // Почему не ПолучитьПодчиненныеОбъекты ?? Исключение Возврат ""; КонецПопытки; - МассивЗаголовков = Новый Массив; + Заголовки = Новый Соответствие; Для Каждого Элем Из КолонкиТаблицы Цикл - МассивЗаголовков.Добавить(Элем.ТекстЗаголовка); + ТекстЗаголовка = Элем.ТекстЗаголовка; + ТекстЗаголовкаОчищенный = СтрЗаменить(ТекстЗаголовка, " ", ""); + Заголовки.Вставить(ТекстЗаголовка, ТекстЗаголовка); + Заголовки.Вставить(ТекстЗаголовкаОчищенный, ТекстЗаголовкаОчищенный); КонецЦикла; БылиОшибки = Ложь; Для Каждого Элем Из ТабПарам[0] Цикл ИскомыйЗаголовокТаблицы = Элем.Значение; - Если МассивЗаголовков.Найти(ИскомыйЗаголовокТаблицы) = Неопределено Тогда + Если Заголовки.Получить(ИскомыйЗаголовокТаблицы) = Неопределено Тогда Стр = Стр + ИскомыйЗаголовокТаблицы + ", "; БылиОшибки = Истина; КонецЕсли; @@ -1708,7 +1715,7 @@ КонецЕсли; Если Прав(Стр,2) = ", " Тогда - Стр = Лев(Стр,СтрДлина(Стр)-2); + Стр = Лев(Стр, СтрДлина(Стр) - 2); КонецЕсли; Возврат Стр; @@ -1942,9 +1949,9 @@ &НаКлиенте //В таблице "Список" я перехожу к строке: //@ВТаблицеЯПерехожуКСтроке(Парам01,ТабПарам) -Процедура ВТаблицеЯПерехожуКСтроке(ИмяТЧ,ТабПарам) Экспорт +Процедура ВТаблицеЯПерехожуКСтроке(ИмяТЧ, ТабПарам) Экспорт ТекстСообщения = "Строка должна быть описана таблицей с двумя строками."; - Ванесса.ПроверитьРавенство(ТабПарам.Количество(),2,ТекстСообщения); + Ванесса.ПроверитьРавенство(ТабПарам.Количество(), 2, ТекстСообщения); ТаблицаСписок = НайтиТЧПоИмени(ИмяТЧ); @@ -1952,26 +1959,26 @@ СделатьДействияПриЗаписиВидео("толькофрейм"); - ОписаниеСтроки = ПолучитьОписаниеСтрокиИзТаблицы(ТабПарам,ТаблицаСписок.Имя); + ОписаниеСтроки = ПолучитьОписаниеСтрокиИзТаблицы(ТабПарам, ТаблицаСписок.Имя); ОшибкаПереходВниз = ""; ОшибкаПереходВверх = ""; - ПолучилосьПерейти = СделатьПереход(ТаблицаСписок,ОписаниеСтроки,ОшибкаПереходВниз,ОшибкаПереходВверх); + ПолучилосьПерейти = СделатьПереход(ТаблицаСписок, ОписаниеСтроки, ОшибкаПереходВниз, ОшибкаПереходВверх); Если НЕ ПолучилосьПерейти Тогда Попытка //Возможно, это ошибка платформы. Такое бывает с таблицами значений в УФ. Смотри https://github.com/silverbulleters/vanessa-behavior/issues/342 //Делаем обход проблемы ТаблицаСписок.ПерейтиКПервойСтроке(); - ПолучилосьПерейти = СделатьПереход(ТаблицаСписок,ОписаниеСтроки,ОшибкаПереходВниз,ОшибкаПереходВверх); + ПолучилосьПерейти = СделатьПереход(ТаблицаСписок, ОписаниеСтроки, ОшибкаПереходВниз, ОшибкаПереходВверх); Исключение - Стр = ПолучитьОшибкуПерехода(ИмяТЧ,ОшибкаПереходВниз,ОшибкаПереходВверх,ТабПарам); + Стр = ПолучитьОшибкуПерехода(ИмяТЧ, ОшибкаПереходВниз, ОшибкаПереходВверх, ТабПарам); ВызватьИсключение Стр; КонецПопытки; КонецЕсли; Если НЕ ПолучилосьПерейти Тогда - Стр = ПолучитьОшибкуПерехода(ИмяТЧ,ОшибкаПереходВниз,ОшибкаПереходВверх,ТабПарам); + Стр = ПолучитьОшибкуПерехода(ИмяТЧ, ОшибкаПереходВниз, ОшибкаПереходВверх, ТабПарам); ВызватьИсключение Стр; КонецЕсли; @@ -3327,13 +3334,13 @@ КонецПроцедуры &НаСервереБезКонтекста -Функция ПроверитьЗначениеРеквизитаСправочника(ИмяСпр,Наименование,ИмяРек,СтроковокПредставление) - Элем = Справочники[ИмяСпр].НайтиПоНаименованию(Наименование,Истина); +Функция ПроверитьЗначениеРеквизитаСправочника(ИмяСпр, Наименование, ИмяРек, СтроковоеПредставление) + Элем = Справочники[ИмяСпр].НайтиПоНаименованию(Наименование, Истина); Если Не ЗначениеЗаполнено(Элем) Тогда Возврат Ложь; КонецЕсли; - Если СокрЛП(Элем[ИмяРек]) <> СтроковокПредставление Тогда + Если СокрЛП(Элем[ИмяРек]) <> СтроковоеПредставление Тогда Возврат Ложь; КонецЕсли; @@ -3343,13 +3350,13 @@ &НаКлиенте //И Есть элемент справочника "Справочник1" с наименованием "Тест" и реквизитом "Реквизит2" равным "Группа2Элем2" //@ЕстьЭлементСправочникаСНаименованиемИРеквизитомРавным(Парам01,Парам02,Парам03,Парам04) -Процедура ЕстьЭлементСправочникаСНаименованиемИРеквизитомРавным(ИмяСпр,Наименование,ИмяРек,СтроковокПредставление) Экспорт - ТекстСообщения = "Не нашел значение реквизита у спр: ИмяСпр=%1, Наименование=%2, ИмяРек=%3, СтроковокПредставление=%4"; +Процедура ЕстьЭлементСправочникаСНаименованиемИРеквизитомРавным(ИмяСпр,Наименование,ИмяРек,СтроковоеПредставление) Экспорт + ТекстСообщения = "Не нашел значение реквизита у спр: ИмяСпр=%1, Наименование=%2, ИмяРек=%3, СтроковоеПредставление=%4"; ТекстСообщения = СтрЗаменить(ТекстСообщения,"%1",ИмяСпр); ТекстСообщения = СтрЗаменить(ТекстСообщения,"%2",Наименование); ТекстСообщения = СтрЗаменить(ТекстСообщения,"%3",ИмяРек); - ТекстСообщения = СтрЗаменить(ТекстСообщения,"%4",СтроковокПредставление); - Ванесса.ПроверитьРавенство(ПроверитьЗначениеРеквизитаСправочника(ИмяСпр,Наименование,ИмяРек,СтроковокПредставление),Истина,ТекстСообщения); + ТекстСообщения = СтрЗаменить(ТекстСообщения,"%4",СтроковоеПредставление); + Ванесса.ПроверитьРавенство(ПроверитьЗначениеРеквизитаСправочника(ИмяСпр,Наименование,ИмяРек,СтроковоеПредставление),Истина,ТекстСообщения); КонецПроцедуры &НаКлиенте @@ -3772,7 +3779,7 @@ &НаКлиенте //И таблица формы с именем ""ИмяТаблицы"" стала равной: //@ТаблицаФормыСИменемСталаРавной(Парам01,ТабПарам) -Процедура ТаблицаФормыСИменемСталаРавной(ИмяТЧ,ТабПарам,ДопПараметры = Неопределено) Экспорт +Процедура ТаблицаФормыСИменемСталаРавной(ИмяТЧ, ТабПарам, ДопПараметры = Неопределено) Экспорт СравнениеПоШаблону = Ложь; ПрикреплятьЗначенияТаблицы = Истина; Если ДопПараметры <> Неопределено Тогда @@ -4282,6 +4289,8 @@ ЗапрещенныйСимвол = Сред(ЗапрещенныеСимволы, НомерСимвола, 1); Стр = СтрЗаменить(Стр, ЗапрещенныйСимвол, "_"); КонецЦикла; + Стр = СтрЗаменить(Стр, Символы.ПС, ""); + Стр = СтрЗаменить(Стр, Символы.ВК, ""); Если Стр = "" Тогда Стр = "_"; @@ -4451,10 +4460,6 @@ &НаКлиенте Функция ПолучитьМакетИзОбработкиИлиИзКаталогаПроекта(ИмяМакета,ДопПараметры = Неопределено,ВызыватьИсключение = Истина) Макет = Ванесса.ПолучитьМакетОбработки(ИмяМакета); - Если Макет = Неопределено Тогда - //будем искать макет в каталоге проекта - Макет = Ванесса.НайтиМакетВКаталогеПроекта(ИмяМакета); - КонецЕсли; Если Макет = Неопределено Тогда Если ВызыватьИсключение Тогда @@ -8337,21 +8342,26 @@ &НаКлиенте //И я жду, что поле "СгенерированныйСценарий" перестанет быть пустым в течение 30 секунд //@ЯЖдуЧтоПолеПерестанетБытьПустымВТечениеСекунд(Парам01,Парам02) -Процедура ЯЖдуЧтоПолеПерестанетБытьПустымВТечениеСекунд(ИмяПоля,КоличествоСекунд,ИскатьПоИмени = Ложь) Экспорт - ЯЖдуЧтоПолеПерестанетБытьПустымВТеченииСекунд(ИмяПоля,КоличествоСекунд,ИскатьПоИмени); +Процедура ЯЖдуЧтоПолеПерестанетБытьПустымВТечениеСекунд(ИмяПоля, КоличествоСекунд, ИскатьПоИмени = Ложь) Экспорт + ЯЖдуЧтоПолеПерестанетБытьПустымВТеченииСекунд(ИмяПоля, КоличествоСекунд, ИскатьПоИмени); КонецПроцедуры &НаКлиенте //И значение поля "СгенерированныйСценарий" равно значению из макета "Xml_1En" //@ЗначениеПоляРавноЗначениюИзМакета(Парам01,Парам02) -Процедура ЗначениеПоляРавноЗначениюИзМакета(ИмяПоля,ИмяМакета,ИскатьПоИмени = Ложь) Экспорт - ТекущееЗначение = СокрЛП(Ванесса.ПолучитьЗначениеРеквизитаОткрытойФормыПоЗаголовку(ИмяПоля,ИскатьПоИмени)); +Процедура ЗначениеПоляРавноЗначениюИзМакета(ИмяПоля, ИмяМакета, ИскатьПоИмени = Ложь) Экспорт + ТекущееЗначение = СокрЛП(Ванесса.ПолучитьЗначениеРеквизитаОткрытойФормыПоЗаголовку(ИмяПоля, ИскатьПоИмени)); Макет = ПолучитьМакетИзОбработкиИлиИзКаталогаПроекта(ИмяМакета); Текст = СокрЛП(Макет.ПолучитьТекст()); Если НРег(ТекущееЗначение) <> НРег(Текст) Тогда ТекстИсключения = "Ожидали что значение поля <" + ИмяПоля + "> будет равно содержимому макета <" + ИмяМакета + ">."; ТекстИсключения = ТекстИсключения + Символы.ПС + "Значение поля=" + Символы.ПС + ТекущееЗначение + Символы.ПС + "Значение макета=" + Символы.ПС + Текст; - ВызватьИсключение ТекстИсключения; + + Ожидаем.Что(ТекущееЗначение).Содержит(Текст); + //если не было исключения, значит, содержание найдено и тогда ошибка, если количество строк не совпадает + Если СтрЧислоСтрок(ТекущееЗначение) <> СтрЧислоСтрок(Текст) Тогда + ВызватьИсключение ТекстИсключения; + КонецЕсли; КонецЕсли; КонецПроцедуры diff --git "a/features/libraries/UITestRunner/step_definitions/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\320\276\320\274\320\224\320\276\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\275\321\213\320\271/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\320\276\320\274\320\224\320\276\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\275\321\213\320\271/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/features/libraries/UITestRunner/step_definitions/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\320\276\320\274\320\224\320\276\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\275\321\213\320\271/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\320\276\320\274\320\224\320\276\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\275\321\213\320\271/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" index bdc162a16..6aa20263f 100644 --- "a/features/libraries/UITestRunner/step_definitions/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\320\276\320\274\320\224\320\276\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\275\321\213\320\271/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\320\276\320\274\320\224\320\276\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\275\321\213\320\271/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ "b/features/libraries/UITestRunner/step_definitions/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\320\276\320\274\320\224\320\276\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\275\321\213\320\271/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201\320\276\320\274\320\224\320\276\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\275\321\213\320\271/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" @@ -129,11 +129,6 @@ Процедура ТабличныйДокументФормыСИменемСталРавенМакетуСИменем(ИмяРеквизита, ИмяМакета,СравнениеПоШаблону = Ложь) Экспорт ТабДокБыло = Ванесса.ПолучитьМакетОбработки(ИмяМакета); - Если ТабДокБыло = Неопределено Тогда - //будем искать макет в каталоге проекта - ТабДокБыло = Ванесса.НайтиМакетВКаталогеПроекта(ИмяМакета); - КонецЕсли; - ЭлементТД = Ванесса.НайтиРеквизитОткрытойФормыПоЗаголовку(ИмяРеквизита,Истина); ТабДокСтало = Ванесса.ПолучитьТабличныйДокументTestClient(ЭлементТД); Если СравнениеПоШаблону Тогда diff --git "a/features/libraries/UITestRunner/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\242\320\260\320\261\320\273\320\270\321\206\320\260\320\274\320\270.feature" "b/features/libraries/UITestRunner/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\242\320\260\320\261\320\273\320\270\321\206\320\260\320\274\320\270.feature" index 7bdf59948..98170a6dc 100644 --- "a/features/libraries/UITestRunner/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\242\320\260\320\261\320\273\320\270\321\206\320\260\320\274\320\270.feature" +++ "b/features/libraries/UITestRunner/\320\240\320\260\320\261\320\276\321\202\320\260\320\241\320\242\320\260\320\261\320\273\320\270\321\206\320\260\320\274\320\270.feature" @@ -76,6 +76,9 @@ Тогда таблица "ТабличнаяЧасть1" стала равной: | N | Составной реквизит таблицы | | 1 | Предопределенное значение | + Тогда таблица "ТабличнаяЧасть1" не содержит строки: + | N | Составной реквизит таблицы | + | 1 | '"Значение в кавычках"' | И активизирую существующую строку таблицы И в таблице "ТабличнаяЧасть1" я выбираю текущую строку @@ -84,3 +87,52 @@ Тогда нет ошибки открытия Тогда открылось окно 'Выбор типа данных' И я нажимаю на кнопку 'ОК' + +Сценарий: Шаг с таблицей и текстом с апострофами + + И В командном интерфейсе я выбираю 'Основная' 'Справочник1' + Тогда открылось окно 'Справочник1' + И я нажимаю на кнопку с именем 'ФормаСоздать' + Тогда открылось окно 'Справочник1 (создание)' + И в поле с именем 'Наименование' я ввожу текст 'Текст \'апострофы и пробе\'' + И я нажимаю на кнопку 'Записать и закрыть' + И я жду закрытия окна 'Справочник1 (создание)' в течение 20 секунд + Тогда таблица "Список" содержит строки: + | Наименование | + | Текст 'апострофы и пробе' | + Тогда таблица "Список" содержит строки: + | Наименование | + | Текст \'апострофы и пробе\' | + +Сценарий: Использование реквизита, в котором есть перенос строки + Дано Подготовлю таблицу на форме, в которой будет заполненная строка + И В командном интерфейсе я выбираю 'Основная' 'Таблицы на форме' + Тогда открылось окно 'Таблицы на форме' + И создаю новую строку таблицы + И в таблице "ТабличнаяЧасть1" я добавляю новую строку + Когда я нажимаю кнопку выбора у реквизита таблицы + И в таблице "ТабличнаяЧасть1" я нажимаю кнопку выбора у реквизита "Составной реквизит таблицы" + + Тогда нет ошибки открытия + Тогда открылось окно 'Выбор типа данных' + + Когда завершаю редактирование строки + # Следующие строки могут помочь точно выбрать нужное метаданное в форме выбора типа + И В форме "Выбор типа данных" в таблице "" я перехожу к строке: + | '' | + | Простой справочник | + И я нажимаю на кнопку 'ОК' + Тогда открылось окно 'Простой справочник' + И в таблице "Список" я перехожу к строке: + | Реквизит булево | Наименование | + | Нет | Предопределенное значение | + И в таблице "Список" я выбираю текущую строку + Тогда открылось окно 'Таблицы на форме' + И в таблице "ТабличнаяЧасть1" я завершаю редактирование строки + Тогда проверяю содержание таблицы + Тогда таблица "ТабличнаяЧасть1" содержит строки: + | N | Составной реквизит таблицы | Реквизит1 | + | 1 | Предопределенное значение | '' | + Тогда таблица "ТабличнаяЧасть1" стала равной: + | N | Составной реквизит таблицы | Реквизит1 | + | 1 | Предопределенное значение | '' | diff --git "a/features/libraries/\320\222\321\201\321\202\321\200\320\276\320\265\320\275\320\275\321\213\320\271\320\257\320\267\321\213\320\272/\320\222\321\201\321\202\321\200\320\276\320\265\320\275\320\275\321\213\320\271\320\257\320\267\321\213\320\272/\320\222\321\201\321\202\321\200\320\276\320\265\320\275\320\275\321\213\320\271\320\257\320\267\321\213\320\272/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/features/libraries/\320\222\321\201\321\202\321\200\320\276\320\265\320\275\320\275\321\213\320\271\320\257\320\267\321\213\320\272/\320\222\321\201\321\202\321\200\320\276\320\265\320\275\320\275\321\213\320\271\320\257\320\267\321\213\320\272/\320\222\321\201\321\202\321\200\320\276\320\265\320\275\320\275\321\213\320\271\320\257\320\267\321\213\320\272/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" index 5d50e1c63..99f6d9965 100644 --- "a/features/libraries/\320\222\321\201\321\202\321\200\320\276\320\265\320\275\320\275\321\213\320\271\320\257\320\267\321\213\320\272/\320\222\321\201\321\202\321\200\320\276\320\265\320\275\320\275\321\213\320\271\320\257\320\267\321\213\320\272/\320\222\321\201\321\202\321\200\320\276\320\265\320\275\320\275\321\213\320\271\320\257\320\267\321\213\320\272/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ "b/features/libraries/\320\222\321\201\321\202\321\200\320\276\320\265\320\275\320\275\321\213\320\271\320\257\320\267\321\213\320\272/\320\222\321\201\321\202\321\200\320\276\320\265\320\275\320\275\321\213\320\271\320\257\320\267\321\213\320\272/\320\222\321\201\321\202\321\200\320\276\320\265\320\275\320\275\321\213\320\271\320\257\320\267\321\213\320\272/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" @@ -57,12 +57,12 @@ &НаКлиенте //И Я запоминаю выражение внутреннего языка "Ванесса.ПолучитьМассивPIDОкон1С().Количество()" в переменную "КоличествоНачальноеПлюсОдинВторойРаз" глобально //@ЯЗапоминаюЗначениеВыраженияВПеременнуюГлобально(Парам01,Парам02) -Процедура ЯЗапоминаюЗначениеВыраженияВПеременнуюГлобально(Выражение,ИмяПеременной) Экспорт +Процедура ЯЗапоминаюЗначениеВыраженияВПеременнуюГлобально(Выражение, ИмяПеременной) Экспорт ЗначениеВыражения = Ванесса.ВычислитьВнутреннееВыражение(Выражение); Попытка - КонтекстСохраняемый.Вставить(ИмяПеременной,ЗначениеВыражения); + КонтекстСохраняемый.Вставить(ИмяПеременной, ЗначениеВыражения); Исключение - Ванесса.СохранитьЗначениеВКонтекстСохраняемый(ИмяПеременной,ЗначениеВыражения); + Ванесса.СохранитьЗначениеВКонтекстСохраняемый(ИмяПеременной, ЗначениеВыражения); КонецПопытки; КонецПроцедуры diff --git "a/features/libraries/\320\237\320\273\320\260\320\263\320\270\320\275\321\213/step_definitions/\320\244\320\270\321\207\320\260_\320\240\320\265\320\263\321\203\320\273\321\217\321\200\320\275\321\213\320\265\320\222\321\213\321\200\320\260\320\266\320\265\320\275\320\270\321\217/\320\244\320\270\321\207\320\260_\320\240\320\265\320\263\321\203\320\273\321\217\321\200\320\275\321\213\320\265\320\222\321\213\321\200\320\260\320\266\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/features/libraries/\320\237\320\273\320\260\320\263\320\270\320\275\321\213/step_definitions/\320\244\320\270\321\207\320\260_\320\240\320\265\320\263\321\203\320\273\321\217\321\200\320\275\321\213\320\265\320\222\321\213\321\200\320\260\320\266\320\265\320\275\320\270\321\217/\320\244\320\270\321\207\320\260_\320\240\320\265\320\263\321\203\320\273\321\217\321\200\320\275\321\213\320\265\320\222\321\213\321\200\320\260\320\266\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" index b0fe25c4b..4c86757fe 100644 --- "a/features/libraries/\320\237\320\273\320\260\320\263\320\270\320\275\321\213/step_definitions/\320\244\320\270\321\207\320\260_\320\240\320\265\320\263\321\203\320\273\321\217\321\200\320\275\321\213\320\265\320\222\321\213\321\200\320\260\320\266\320\265\320\275\320\270\321\217/\320\244\320\270\321\207\320\260_\320\240\320\265\320\263\321\203\320\273\321\217\321\200\320\275\321\213\320\265\320\222\321\213\321\200\320\260\320\266\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ "b/features/libraries/\320\237\320\273\320\260\320\263\320\270\320\275\321\213/step_definitions/\320\244\320\270\321\207\320\260_\320\240\320\265\320\263\321\203\320\273\321\217\321\200\320\275\321\213\320\265\320\222\321\213\321\200\320\260\320\266\320\265\320\275\320\270\321\217/\320\244\320\270\321\207\320\260_\320\240\320\265\320\263\321\203\320\273\321\217\321\200\320\275\321\213\320\265\320\222\321\213\321\200\320\260\320\266\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" @@ -25,9 +25,11 @@ Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,"ПеременнаяСоответствуетРегулярномуВыражению(Парам01,Парам02)","ПеременнаяСоответствуетРегулярномуВыражению","Тогда переменная ""ПроверяемаяСтрока"" соответствует регулярному выражению ""\d\d\d""","","Регулярные выражения"); Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,"ЯЗапоминаюСтрокуКакПеременную(Парам01,Парам02)","ЯЗапоминаюСтрокуКакПеременную","Когда Я запоминаю строку ""Привет"" как переменную ""ПроверяемаяСтрока""","","Контекст.Контекст.Сохранить значение"); + Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,"ЯЗапоминаюСтрокуКакПеременнуюГлобально(Парам01,Парам02)","ЯЗапоминаюСтрокуКакПеременнуюГлобально","Когда Я запоминаю строку ""Привет"" как переменную ""ПроверяемаяСтрока"" глобально","","Контекст.Контекст сохраняемый.Сохранить значение"); Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,"ПеременнаяСоответствуетПростомуШаблону(Парам01,Парам02)","ПеременнаяСоответствуетПростомуШаблону","Тогда переменная ""ПроверяемаяСтрока"" соответствует простому шаблону ""*ри*""","","Регулярные выражения"); Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,"ПеременнаяНеСоответствуетРегулярномуВыражению(Парам01,Парам02)","ПеременнаяНеСоответствуетРегулярномуВыражению","Тогда переменная ""ПроверяемаяСтрока"" не соответствует регулярному выражению ""\d{4}""","","Регулярные выражения"); Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,"ПеременнаяНеСоответствуетПростомуШаблону(Парам01,Парам02)","ПеременнаяНеСоответствуетПростомуШаблону","Тогда переменная ""ПроверяемаяСтрока"" не соответствует простому шаблону ""*ДругойТекст*""","","Регулярные выражения"); + Ванесса.ДобавитьШагВМассивТестов(ВсеТесты,"ПеременнаяИмеетЗначениеГлобально(Парам01,Парам02)","ПеременнаяИмеетЗначениеГлобально","Тогда переменная ""ИмяПеременной"" имеет значение ""ЗначениеПеременной"" глобально","Проверяет значение переменной глобального контекста","Контекст.Контекст сохраняемый.Прочитать значение"); Возврат ВсеТесты; КонецФункции @@ -47,8 +49,6 @@ #КонецОбласти - - #Область Работа_со_сценариями &НаКлиенте @@ -65,7 +65,6 @@ #КонецОбласти - /////////////////////////////////////////////////// //Реализация шагов /////////////////////////////////////////////////// @@ -77,6 +76,33 @@ Контекст.Вставить(ИмяПеременной, ИсходнаяСтрока); КонецПроцедуры +&НаКлиенте +//Когда Я запоминаю строку "Привет" как переменную "ПроверяемаяСтрока" глобально +//@ЯЗапоминаюСтрокуКакПеременнуюГлобально(Парам01,Парам02) +Процедура ЯЗапоминаюСтрокуКакПеременнуюГлобально(ИсходнаяСтрока, ИмяПеременной) Экспорт + КонтекстСохраняемый.Вставить(ИмяПеременной, ИсходнаяСтрока); +КонецПроцедуры + +&НаКлиенте +//Тогда переменная "ЗначениеВариантЗаполненияСостава" имеет значение "Отбор" глобально +//@ПеременнаяИмеетЗначениеГлобально(Парам01,Парам02) +Процедура ПеременнаяИмеетЗначениеГлобально(ИмяПеременной, ОжидаемоеЗначение) Экспорт + ТекущееЗначение = Неопределено; + Если НЕ КонтекстСохраняемый.Свойство(ИмяПеременной, ТекущееЗначение) Тогда + ТекстСообщения = "Переменная <%1> не найдена."; + ТекстСообщения = СтрЗаменить(ТекстСообщения, "%1", ИмяПеременной); + ВызватьИсключение ТекстСообщения; + КонецЕсли; + + Если ТекущееЗначение <> ОжидаемоеЗначение Тогда + ТекстСообщения = "Ожидали, что переменная <%1> будет равна <%2>. Текущее значение <%3>"; + ТекстСообщения = СтрЗаменить(ТекстСообщения, "%1", ИмяПеременной); + ТекстСообщения = СтрЗаменить(ТекстСообщения, "%2", ОжидаемоеЗначение); + ТекстСообщения = СтрЗаменить(ТекстСообщения, "%3", ТекущееЗначение); + ВызватьИсключение ТекстСообщения; + КонецЕсли; +КонецПроцедуры + &НаКлиенте //Тогда переменная "ПроверяемаяСтрока" соответствует регулярному выражению "/d/d/d" //@ПеременнаяСоответствуетРегулярномуВыражению(Парам01,Парам02) diff --git a/lib/CF/83/Configuration.xml b/lib/CF/83/Configuration.xml index 179d4123e..d4d81de11 100644 --- a/lib/CF/83/Configuration.xml +++ b/lib/CF/83/Configuration.xml @@ -32,7 +32,7 @@ ru - ADD/BDD, ver. 5.7.0 + ADD/BDD, ver. 5.8.0 @@ -45,7 +45,7 @@ Russian - 5.7.0 + 5.8.0 false false diff --git a/lib/CF/83NoSync/Configuration.xml b/lib/CF/83NoSync/Configuration.xml index 76a9717d4..ab345cebc 100644 --- a/lib/CF/83NoSync/Configuration.xml +++ b/lib/CF/83NoSync/Configuration.xml @@ -32,7 +32,7 @@ ru - ADD/BDD, ver. 5.7.0 + ADD/BDD, ver. 5.8.0 @@ -45,7 +45,7 @@ Russian - 5.7.0 + 5.8.0 false false diff --git "a/lib/CF/83NoSync/DataProcessor.\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\235\320\260\320\244\320\276\321\200\320\274\320\265.Form.\320\244\320\276\321\200\320\274\320\260.Form.xml" "b/lib/CF/83NoSync/DataProcessor.\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\235\320\260\320\244\320\276\321\200\320\274\320\265.Form.\320\244\320\276\321\200\320\274\320\260.Form.xml" index c9e2b7980..4c5514853 100644 --- "a/lib/CF/83NoSync/DataProcessor.\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\235\320\260\320\244\320\276\321\200\320\274\320\265.Form.\320\244\320\276\321\200\320\274\320\260.Form.xml" +++ "b/lib/CF/83NoSync/DataProcessor.\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\235\320\260\320\244\320\276\321\200\320\274\320\265.Form.\320\244\320\276\321\200\320\274\320\260.Form.xml" @@ -1,6 +1,6 @@ 
    - + Объект.СоставнойРеквизит @@ -55,6 +55,20 @@ + + Объект.ТабличнаяЧасть1.Реквизит1 + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Рек +визит +1</v8:content> + </v8:item> + + EnterOnInput + + + diff --git "a/lib/CF/83NoSync/DataProcessor.\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\235\320\260\320\244\320\276\321\200\320\274\320\265.xml" "b/lib/CF/83NoSync/DataProcessor.\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\235\320\260\320\244\320\276\321\200\320\274\320\265.xml" index acb3b3ae0..f57e6eb4f 100644 --- "a/lib/CF/83NoSync/DataProcessor.\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\235\320\260\320\244\320\276\321\200\320\274\320\265.xml" +++ "b/lib/CF/83NoSync/DataProcessor.\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\235\320\260\320\244\320\276\321\200\320\274\320\265.xml" @@ -119,6 +119,46 @@ Auto + + + Реквизит1 + + + ru + Реквизит1 + + + + + xs:string + + 10 + Variable + + + false + + + + false + + false + false + + + false + + DontCheck + Items + + + Auto + Auto + + + Auto + + Форма diff --git a/lib/CF/83xdd/Configuration.xml b/lib/CF/83xdd/Configuration.xml index dc9a4f56e..f21e7ec1c 100644 --- a/lib/CF/83xdd/Configuration.xml +++ b/lib/CF/83xdd/Configuration.xml @@ -32,7 +32,7 @@ ru - ADD/TDD, ver. 5.7.0 + ADD/TDD, ver. 5.8.0 @@ -45,7 +45,7 @@ Russian - 5.7.0 + 5.8.0 false true diff --git a/lib/CF/83xddNoSync/Configuration.xml b/lib/CF/83xddNoSync/Configuration.xml index 07a0aea0f..8fc706e18 100644 --- a/lib/CF/83xddNoSync/Configuration.xml +++ b/lib/CF/83xddNoSync/Configuration.xml @@ -32,7 +32,7 @@ ru - ADD/TDD, ver. 5.7.0 + ADD/TDD, ver. 5.8.0 @@ -45,7 +45,7 @@ Russian - 5.7.0 + 5.8.0 false true diff --git a/lib/featurereader/vbFeatureReader/vbFeatureReader/Ext/ObjectModule.bsl b/lib/featurereader/vbFeatureReader/vbFeatureReader/Ext/ObjectModule.bsl index 56ac67072..08e6f75e0 100644 --- a/lib/featurereader/vbFeatureReader/vbFeatureReader/Ext/ObjectModule.bsl +++ b/lib/featurereader/vbFeatureReader/vbFeatureReader/Ext/ObjectModule.bsl @@ -1542,7 +1542,8 @@ Процедура ЗакрытьПредыдущийСценарий(ИмяФичи, ПолноеИмяФичи, ТекущийТипСценария, ПредыдущееКлючевоеСлово, ТекущееКлючевоеСлово, ДеревоСтроки, ОписаниеСценария, ТаблицаШагов, ТаблицаИзвестныхШагов, ТаблицаСтрокПримеров, НомерСтрокиСценария, ТаблицаУжеСуществующихСценариев, СтруктураПараметров, - МассивСценариевЗащитаОтЗацикливанияКеш, ЭтоЗагрузкаПодчиненногоСценария, ПередаваемыеТаблицы, ИмяЗагружаемогоСценария) + МассивСценариевЗащитаОтЗацикливанияКеш, ЭтоЗагрузкаПодчиненногоСценария, ПередаваемыеТаблицы, + ИмяЗагружаемогоСценария) Если (ТекущееКлючевоеСлово <> "scenario") И (ТекущееКлючевоеСлово <> "scenario_outline") Тогда Возврат; @@ -1561,111 +1562,43 @@ ДеревоСтроки.Родитель.МассивТегов = МассивТеговФичи; - НаденТегОтборВФиче = Ложь; - НаденТегИсключениеВФиче = Ложь; - НаденТегОтборВСценарии = Ложь; - НаденТегИсключениеВСценарии = Ложь; - Если СокрЛП(ТекущийТипСценария) <> "" И ТекущийТипСценария <> "background" Тогда//когда загружаем явно одну фичу то фильтры не работают - Если СтруктураПараметров.ИдетЗагрузкаИзКаталога Тогда - - //по исключению сценариев - ТегИсключение = Неопределено; - Для Каждого СвойстваТега Из ТегиСценария Цикл - Тег = СвойстваТега.Тег; - Если СписокТеговИсключение.НайтиПоЗначению(Тег) <> Неопределено Тогда - Сообщить("В сценарии <" + ОписаниеСценария + "> найден тег исключение <" + Тег + ">"); - НаденТегИсключениеВСценарии = Истина; - КонецЕсли; - КонецЦикла; - - Для Каждого СвойстваТега Из МассивТеговФичи Цикл - Тег = СвойстваТега.Тег; - Если СписокТеговИсключение.НайтиПоЗначению(Тег) <> Неопределено Тогда - Сообщить("В фиче <" + ПолноеИмяФичи + "> сценария <" + ОписаниеСценария + "> найден тег исключение <" + Тег + ">"); - НаденТегИсключениеВФиче = Истина; - КонецЕсли; - КонецЦикла; + НайденТегОтборВФиче = Ложь; + НайденТегИсключениеВФиче = Ложь; + НайденТегОтборВСценарии = Ложь; + НайденТегИсключениеВСценарии = Ложь; + //когда загружаем явно одну фичу, фильтры не работают + Если СокрЛП(ТекущийТипСценария) <> "" И ТекущийТипСценария <> "background" + И НЕ ЭтоЗагрузкаПодчиненногоСценария + И ( СписокТеговОтбор.Количество() > 0 + Или СписокТеговИсключение.Количество() > 0 ) Тогда - //по отбору сценариев - НаденТегОтборВСценарии = Ложь; - Для Каждого СвойстваТега Из ТегиСценария Цикл - Тег = СвойстваТега.Тег; - Если СписокТеговОтбор.НайтиПоЗначению(Тег) <> Неопределено Тогда - Сообщить("В сценарии <" + ОписаниеСценария + "> найден тег отбор <" + Тег + ">"); - НаденТегОтборВСценарии = Истина; - КонецЕсли; - КонецЦикла; + Если СтруктураПараметров.ИдетЗагрузкаИзКаталога Тогда - Для Каждого СвойстваТега Из МассивТеговФичи Цикл - Тег = СвойстваТега.Тег; - Если СписокТеговОтбор.НайтиПоЗначению(Тег) <> Неопределено Тогда - Сообщить("В фиче <" + ПолноеИмяФичи + "> сценария <" + ОписаниеСценария + "> найден тег отбор <" + Тег + ">"); - НаденТегОтборВФиче = Истина; - КонецЕсли; - КонецЦикла; + НайденТегИсключениеВФиче = НайтиТегИзСпискаТегов(СписокТеговИсключение, МассивТеговФичи, + "В фиче <" + ПолноеИмяФичи + "> сценария <" + ОписаниеСценария + "> найден тег исключение"); - Если СписокТеговОтбор.Количество() > 0 Тогда - Если Не НаденТегОтборВСценарии И НЕ НаденТегОтборВФиче Тогда - Если НЕ ЭтоЗагрузкаПодчиненногоСценария Тогда //значит это загрузка именно фичи, а не вложенного сценария - Сообщить("Сценарий <" + ОписаниеСценария + "> не загружен."); - Возврат;//значит установлен отбор, а у сценария нет этого тега и у фичи нет этого тега - КонецЕсли; - КонецЕсли; - КонецЕсли; + НайденТегОтборВФиче = НайтиТегИзСпискаТегов(СписокТеговОтбор, МассивТеговФичи, + "В фиче <" + ПолноеИмяФичи + "> сценария <" + ОписаниеСценария + "> найден тег отбор"); - Если СписокТеговИсключение.Количество() > 0 Тогда - Если НаденТегИсключениеВСценарии или НаденТегИсключениеВФиче Тогда //значит надо проигнорировать этот сценарий - Если Не НаденТегОтборВСценарии И НЕ НаденТегОтборВФиче Тогда //у отбора приоритет над исключением, значит надо оставить сценарий - Если НЕ ЭтоЗагрузкаПодчиненногоСценария Тогда //значит это загрузка именно фичи, а не вложенного сценария - Сообщить("Сценарий <" + ОписаниеСценария + "> не загружен."); - Возврат; - КонецЕсли; - КонецЕсли; - КонецЕсли; - КонецЕсли; + КонецЕсли; - Иначе + НайденТегИсключениеВСценарии = НайтиТегИзСпискаТегов(СписокТеговИсключение, ТегиСценария, + "В сценарии <" + ОписаниеСценария + "> найден тег исключение"); - //по исключению сценариев - ТегИсключение = Неопределено; - Для Каждого СвойстваТега Из ТегиСценария Цикл - Тег = СвойстваТега.Тег; - Если СписокТеговИсключение.НайтиПоЗначению(Тег) <> Неопределено Тогда - Сообщить("В сценарии <" + ОписаниеСценария + "> найден тег исключение <" + Тег + ">"); - НаденТегИсключениеВСценарии = Истина; - КонецЕсли; - КонецЦикла; + НайденТегОтборВСценарии = НайтиТегИзСпискаТегов(СписокТеговОтбор, ТегиСценария, + "В сценарии <" + ОписаниеСценария + "> найден тег отбор"); - //по отбору сценариев - НаденТегОтборВСценарии = Ложь; - Для Каждого СвойстваТега Из ТегиСценария Цикл - Тег = СвойстваТега.Тег; - Если СписокТеговОтбор.НайтиПоЗначению(Тег) <> Неопределено Тогда - Сообщить("В сценарии <" + ОписаниеСценария + "> найден тег отбор <" + Тег + ">"); - НаденТегОтборВСценарии = Истина; - КонецЕсли; - КонецЦикла; + Если Не НайденТегОтборВСценарии И НЕ НайденТегОтборВФиче Тогда - Если СписокТеговОтбор.Количество() > 0 Тогда - Если Не НаденТегОтборВСценарии И НЕ НаденТегОтборВФиче Тогда - Если НЕ ЭтоЗагрузкаПодчиненногоСценария Тогда //значит это загрузка именно фичи, а не вложенного сценария - Сообщить("Сценарий <" + ОписаниеСценария + "> не загружен."); - Возврат;//значит установлен отбор, а у сценария нет этого тега и у фичи нет этого тега - КонецЕсли; - КонецЕсли; - КонецЕсли; + //значит это загрузка именно фичи, а не вложенного сценария + //у отбора приоритет над исключением, значит надо оставить сценарий + Если СписокТеговОтбор.Количество() > 0 + Или ( СписокТеговИсключение.Количество() > 0 + И ( НайденТегИсключениеВСценарии Или НайденТегИсключениеВФиче ) ) Тогда - Если СписокТеговИсключение.Количество() > 0 Тогда - Если НаденТегИсключениеВСценарии или НаденТегИсключениеВФиче Тогда //значит надо проигнорировать этот сценарий - Если Не НаденТегОтборВСценарии И НЕ НаденТегОтборВФиче Тогда //у отбора приоритет над исключением, значит надо оставить сценарий - Если НЕ ЭтоЗагрузкаПодчиненногоСценария Тогда //значит это загрузка именно фичи, а не вложенного сценария - Сообщить("Сценарий <" + ОписаниеСценария + "> не загружен."); - Возврат; - КонецЕсли; - КонецЕсли; - КонецЕсли; + Сообщить("Сценарий <" + ОписаниеСценария + "> не загружен."); + Возврат; //значит установлен отбор, а у сценария нет этого тега и у фичи нет этого тега КонецЕсли; - КонецЕсли; КонецЕсли; @@ -1687,7 +1620,8 @@ КонецЕсли; СтрДеревоСтроки.ПолныйПуть = СтрДеревоСтроки.Родитель.ПолныйПуть + ":" + НомерСтрокиСценария; СтрДеревоСтроки.НомерСтрокиВФиче = НомерСтрокиСценария; - ДобавитьОбластьВТаблицуОбластей(СтрДеревоСтроки.НомерСтрокиВФиче,СтруктураПараметров.ТаблицаОбластей,СтрДеревоСтроки); + ДобавитьОбластьВТаблицуОбластей(СтрДеревоСтроки.НомерСтрокиВФиче, СтруктураПараметров.ТаблицаОбластей, + СтрДеревоСтроки); Если ТекущийТипСценария = "background" Тогда СтрДеревоСтроки.ДопТип = "Контекст"; @@ -1702,7 +1636,8 @@ //определим есть ли замена таблицы примеров ЕстьЗаменаТаблицыПримеров = Ложь; - Если (ПередаваемыеТаблицы <> Неопределено) И (ЭтоЗагрузкаПодчиненногоСценария = Истина) И (НРег(ИмяСценария) = НРег(ИмяЗагружаемогоСценария)) Тогда + Если (ПередаваемыеТаблицы <> Неопределено) И (ЭтоЗагрузкаПодчиненногоСценария = Истина) + И (НРег(ИмяСценария) = НРег(ИмяЗагружаемогоСценария)) Тогда КолТаблицВФиче = 0; Для каждого СтрТаблицаШагов Из ТаблицаШагов Цикл @@ -2037,6 +1972,17 @@ КонецЕсли; КонецПроцедуры +Функция НайтиТегИзСпискаТегов(Знач СписокТегов, Знач КоллекцияТегов, Знач НачалоСообщенияОшибки) + Для Каждого СвойстваТега Из КоллекцияТегов Цикл + Тег = СвойстваТега.Тег; + Если СписокТегов.НайтиПоЗначению(Тег) <> Неопределено Тогда + Сообщить(НачалоСообщенияОшибки + " <" + Тег + ">"); + Возврат Истина; + КонецЕсли; + КонецЦикла; + Возврат Ложь; +КонецФункции + Процедура ФичаСодержитСтруктурыСценария(Дерево,Статус) Для Каждого СтрокаДерева Из Дерево.Строки Цикл Если СтрокаДерева.ДопТип = "СтруктураСценария" Тогда diff --git a/packagedef b/packagedef index 423aa04bc..8f81fe286 100644 --- a/packagedef +++ b/packagedef @@ -161,7 +161,7 @@ Сообщить("ИНФОРМАЦИЯ - Создан файл релиза " + ФайлКонечный.ПолноеИмя); КонецПроцедуры -ВерсияПакета = "5.7.0"; +ВерсияПакета = "5.8.0"; Описание.Имя("add") .Версия(ВерсияПакета) diff --git "a/plugins/LoadSettings/LoadSettings/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/plugins/LoadSettings/LoadSettings/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" index d947aa7e4..ed2d1fd1c 100644 --- "a/plugins/LoadSettings/LoadSettings/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ "b/plugins/LoadSettings/LoadSettings/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" @@ -672,10 +672,12 @@ СкопироватьЗначениеСтруктуры(КлючВНастройках, Настройки, НастройкиРезультат, Ключ); КонецЦикла; + ВерсияVanessaADD = Неопределено; + НастройкиРезультат.Свойство("ВерсияVanessaADD", ВерсияVanessaADD); ВерсияVB = Неопределено; - НастройкиРезультат.Свойство("ВерсияVB", ВерсияVB); - Если НЕ ЗначениеЗаполнено(ВерсияVB) Тогда - НастройкиРезультат.Вставить("ВерсияVB", ВерсияВБКлиент); + НастройкиРезультат.Свойство("ВерсияVB", ВерсияVB); //для совместимости + Если НЕ ЗначениеЗаполнено(ВерсияVanessaADD) И НЕ ЗначениеЗаполнено(ВерсияVB) Тогда + НастройкиРезультат.Вставить("ВерсияVanessaADD", ВерсияВБКлиент); НастройкиРезультат.Вставить("ДействиеСброситьКешИзвестныхStepDefinitionСервер", Истина); НадоСохранитьНастройки = Истина; @@ -1274,7 +1276,7 @@ Описание.Вставить("ТипЗапуска", ТипыЗапуска.Интерактивный); Рез.Вставить(Ключ, Описание); - Ключ = "ВерсияVB"; + Ключ = "ВерсияVanessaADD"; Описание = Новый Структура("Р, А, ПоУмолчанию, УстанавливатьЕслиЗаполнено, ЭтоМассив, УстанавливатьЕслиИстина, ПреобразоватьПуть, ПростоУстановить, РазрешаюшийКлюч", Ключ, "frameworkversion", "", Ложь, Ложь, Ложь, Ложь, Истина, ""); Описание.Вставить("ТипЗапуска", ТипыЗапуска.Интерактивный); diff --git "a/plugins/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Ext/ObjectModule.bsl" "b/plugins/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Ext/ObjectModule.bsl" index 9682d07f6..e1cabb0a5 100644 --- "a/plugins/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Ext/ObjectModule.bsl" +++ "b/plugins/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Ext/ObjectModule.bsl" @@ -8,7 +8,7 @@ Результат.Вставить("Тип", ВозможныеТипыПлагинов.Утилита); Результат.Вставить("Идентификатор", "Настройки"); Результат.Вставить("Представление", "Управление внешними настройками тестирования"); - + Возврат Новый ФиксированнаяСтруктура(Результат); КонецФункции @@ -21,7 +21,7 @@ // { Settings interface // Функция - Получить настройки -// +// // Возвращаемое значение: // - Структура // @@ -32,87 +32,87 @@ Если Настройки = Неопределено Тогда ПутьФайлаНастроек = КонтекстЯдра.ПутьФайлаНастроек(); - + ФайлНастройки = Новый Файл(ПутьФайлаНастроек); СоздатьКоллекцияИсключаемыхКлючей(); - + Настройки = ПрочитатьНастройкиИзФайлаJSon(ПутьФайлаНастроек); Настройки = ДобавитьВНастройкиДанныеИзВложенныхФайловНастроек(Настройки, ИмяКлючаФайлаНастройки, ФайлНастройки.Путь); Настройки = Новый ФиксированнаяСтруктура(Настройки); - + Если Настройки.Свойство("Отладка") Тогда ЕстьФлагОтладки = Настройки.Отладка; - + Если ЕстьСвойство(КонтекстЯдра, "ФлагОтладки") Тогда - КонтекстЯдра.ФлагОтладки = ЕстьФлагОтладки; + КонтекстЯдра.ФлагОтладки = ЕстьФлагОтладки; КонтекстЯдра.Отладка(КонтекстЯдра.СтрШаблон_("НовоеЗначение КонтекстЯдра.ФлагОтладки %1", КонтекстЯдра.ФлагОтладки)); КонецЕсли; Если ЕстьСвойство(КонтекстЯдра, "DebugLog") Тогда - КонтекстЯдра.DebugLog = ЕстьФлагОтладки; + КонтекстЯдра.DebugLog = ЕстьФлагОтладки; КонтекстЯдра.Отладка(КонтекстЯдра.СтрШаблон_("НовоеЗначение КонтекстЯдра.DebugLog %1", КонтекстЯдра.DebugLog)); КонецЕсли; - + КонтекстЯдра.Отладка(КонтекстЯдра.СтрШаблон_("ЕстьСвойство(КонтекстЯдра, ФлагОтладки) %1", ЕстьСвойство(КонтекстЯдра, "ФлагОтладки"))); КонтекстЯдра.Отладка(КонтекстЯдра.СтрШаблон_("КонтекстЯдра.ФлагОтладки %1", КонтекстЯдра.ФлагОтладки)); - + Если ЕстьФлагОтладки Тогда КонтекстЯдра.Отладка(""); КонтекстЯдра.Отладка("Файл настроек <" + ПутьФайлаНастроек + ">"); КонтекстЯдра.Отладка("Переданные настройки:"); ПоказатьСвойстваВРежимеОтладки(Настройки); КонтекстЯдра.Отладка(""); - КонецЕсли; - КонецЕсли; - - КонецЕсли; + КонецЕсли; + КонецЕсли; + + КонецЕсли; Возврат Настройки; КонецФункции // Функция - Получить настройку // // Параметры: -// КлючНастройки - - -// +// КлючНастройки - - +// // Возвращаемое значение: -// - +// - // Функция ПолучитьНастройку(Знач КлючНастройки) Экспорт ПолучитьНастройки(); - + Результат = Неопределено; Настройки.Свойство(КлючНастройки, Результат); Возврат Результат; - + КонецФункции // Позволяет одним вызовом получить значение из вложенных друг в друга структур -// по строке ключей, объединенных точкой. +// по строке ключей, объединенных точкой. // // Параметры: // ПутьНастроек - Строка - Путь или ключ настроек // СтруктураНастроек - Произвольный, Неопределено - полученное значение // ( необязательно ) -// +// // Возвращаемое значение: // Булево - Истина, если ключ/путь найден, иначе Ложь // -// Пример: +// Пример: // Структура = Новый Структура("Ключ1", Новый Структура("Ключ2", Новый Структура("Ключ3", 42))); // РезультатПроверки = ЕстьНастройка("Ключ1.Ключ2.Ключ3", ВремЗнач); // В результате получим ВремЗнач == 42 // //&НаКлиенте Функция ЕстьНастройка(Знач ПутьНастроек, СтруктураНастроек = Неопределено) Экспорт - + Если СтруктураНастроек = Неопределено Тогда СтруктураНастроек = ПолучитьНастройки(); КонецЕсли; - + Если ТипЗнч(СтруктураНастроек) = Тип("Структура") Или ТипЗнч(СтруктураНастроек) = Тип("ФиксированнаяСтруктура") Тогда - + ПозТочки = Найти(ПутьНастроек, "."); - + Если ПозТочки = 0 Тогда Возврат СтруктураНастроек.Свойство(ПутьНастроек); Иначе @@ -122,11 +122,11 @@ Возврат ЕстьНастройка(ОстатокПути, СтруктураНастроек[ИмяТекущегоСвойства]); КонецЕсли; КонецЕсли; - + КонецЕсли; - + Возврат Ложь; - + КонецФункции // Процедура - Обновить @@ -140,8 +140,8 @@ // Процедура - Добавить настройку // // Параметры: -// Ключ - - -// Значение - - +// Ключ - - +// Значение - - // Процедура ДобавитьНастройку(Знач Ключ, Знач Значение) Экспорт @@ -150,8 +150,8 @@ НовыеНастройки = Новый Структура(); Для каждого КлючЗначение Из Настройки Цикл НовыеНастройки.Вставить(КлючЗначение.Ключ, КлючЗначение.Значение); - КонецЦикла; - + КонецЦикла; + _ДобавитьНастройку(НовыеНастройки, Ключ, Значение); Настройки = Новый ФиксированнаяСтруктура(НовыеНастройки); @@ -160,7 +160,7 @@ // Процедура - Добавить настройки // // Параметры: -// ИсточникНастроек - - +// ИсточникНастроек - - // Процедура ДобавитьНастройки(Знач ИсточникНастроек) Экспорт @@ -168,15 +168,15 @@ НовыеНастройки = Новый Структура(); Для каждого КлючЗначение Из Настройки Цикл НовыеНастройки.Вставить(КлючЗначение.Ключ, КлючЗначение.Значение); - КонецЦикла; - + КонецЦикла; + КонтекстЯдра().Отладка("Добавляю настройки:"); ПоказатьСвойстваВРежимеОтладки(ИсточникНастроек); - + Для каждого КлючЗначение Из ИсточникНастроек Цикл _ДобавитьНастройку(НовыеНастройки, КлючЗначение.Ключ, КлючЗначение.Значение); - КонецЦикла; - + КонецЦикла; + Настройки = Новый ФиксированнаяСтруктура(НовыеНастройки); КонецПроцедуры @@ -184,8 +184,8 @@ // Процедура - Показать свойства в режиме отладки // // Параметры: -// ПараметрыПараметр - - -// Отступ - - +// ПараметрыПараметр - - +// Отступ - - // Процедура ПоказатьСвойстваВРежимеОтладки(Знач ПараметрыПараметр, Знач Отступ = "") Экспорт КонтекстЯдра = КонтекстЯдра(); @@ -194,7 +194,7 @@ Если ТипЗнч(Значение) = Тип("ФиксированныйМассив") Или ТипЗнч(Значение) = Тип("Структура") Или ТипЗнч(Значение) = Тип("ФиксированнаяСтруктура") Тогда - + КонтекстЯдра.Отладка(Отступ + "количество = <" + Значение.Количество() + ">"); ПоказатьСвойстваВРежимеОтладки(Значение, Отступ + " "); Иначе @@ -207,21 +207,21 @@ Если ТипЗнч(Значение) = Тип("ФиксированныйМассив") Или ТипЗнч(Значение) = Тип("Структура") Или ТипЗнч(Значение) = Тип("ФиксированнаяСтруктура") Тогда - + КонтекстЯдра.Отладка(Отступ + "Ключ <" + КлючЗначение.Ключ + ">, количество = <" + Значение.Количество() + ">"); ПоказатьСвойстваВРежимеОтладки(Значение, Отступ + " "); Иначе КонтекстЯдра.Отладка(Отступ + "Ключ <" + КлючЗначение.Ключ + ">, Значение = <" + Значение + ">"); КонецЕсли; КонецЦикла; - КонецЕсли; + КонецЕсли; КонтекстЯдра.Отладка(Отступ + ""); КонецПроцедуры // } Settings interface -Функция ДобавитьВНастройкиДанныеИзВложенныхФайловНастроек(Знач Настройки, Знач ИмяКлючаФайлаНастройки, +Функция ДобавитьВНастройкиДанныеИзВложенныхФайловНастроек(Знач Настройки, Знач ИмяКлючаФайлаНастройки, Знач КаталогРодительскойНастройки) Результат = Новый Структура; @@ -233,12 +233,12 @@ Значение = ПрочитатьНастройкиИзФайлаJSon(КаталогРодительскойНастройки + "/" + ПутьДопФайлаНастроек); КонецЕсли; КонецЕсли; - + Если ТипЗнч(Значение) = Тип("Строка") Тогда Значение = Заменить_workspaceRoot_на_РабочийКаталогПроекта(Значение); КонецЕсли; - - Результат.Вставить(Настройка.Ключ, Значение); + + Результат.Вставить(Настройка.Ключ, Значение); КонецЦикла; Возврат Результат; @@ -265,11 +265,11 @@ Если ТипЗнч(Значение) = Тип("Соответствие") Тогда Значение = ПреобразоватьСоответствиеВСтруктуру(Значение, КоллекцияИсключаемыхКлючей); КонецЕсли; - + Попытка - + Результат.Вставить(КлючЗначение.Ключ, Значение); - + Исключение Инфо = ИнформацияОбОшибке(); ОписаниеОшибки = "Ошибка загрузки настроек. Неверный ключ @@ -279,9 +279,9 @@ КонтекстЯдра.ЗафиксироватьОшибкуВЖурналеРегистрации("Настройки", ОписаниеОшибки); КонтекстЯдра.ВывестиСообщение(ОписаниеОшибки, СтатусСообщения.ОченьВажное); - + ВызватьИсключение; - + КонецПопытки; КонецЕсли; КонецЦикла; @@ -290,14 +290,22 @@ Процедура СоздатьКоллекцияИсключаемыхКлючей() КоллекцияИсключаемыхКлючей = Новый Соответствие; - КоллекцияИсключаемыхКлючей.Вставить("$schema", "$schema"); + КоллекцияИсключаемыхКлючей.Вставить("$schema", "$schema"); КонецПроцедуры Функция Заменить_workspaceRoot_на_РабочийКаталогПроекта(Знач ИсходнаяСтрока) Возврат СтрЗаменить(ИсходнаяСтрока, "$workspaceRoot", КонтекстЯдра.КаталогПроекта); КонецФункции -//&НаКлиенте +// Универсальная функция для проверки наличия свойств у значения любого типа данных +// +// Параметры: +// Объект - Любой - Коллекция любого типа, для которой необходимо проверить наличие свойства +// ИмяСвойства - Строка - имя проверяемого свойства +// +// Возвращаемое значение: +// Булево - Истина, если свойство существует +// Функция ЕстьСвойство(Знач Объект, Знач ИмяСвойства) Экспорт НачальноеЗНачение = Новый УникальныйИдентификатор(); ЗначениеРеквизита = Новый Структура(ИмяСвойства, НачальноеЗНачение); @@ -309,11 +317,11 @@ КонецФункции Процедура _ДобавитьНастройку(Знач КоллекцияНастроек, Знач Ключ, Знач Значение) - + КонтекстЯдра.Отладка("ТипЗнч(КоллекцияНастроек) <" + ТипЗнч(КоллекцияНастроек) + ">"); КоллекцияНастроек.Вставить(Ключ, Значение); - + КонтекстЯдра.Отладка("Добавил настройку <" + Ключ + ">, Значение = <" + Значение + ">"); КонецПроцедуры @@ -321,6 +329,6 @@ Функция КонтекстЯдра() Если КонтекстЯдра = Неопределено Тогда Возврат ВнешниеОбработки.Создать("xddTestRunner"); - КонецЕсли; + КонецЕсли; Возврат КонтекстЯдра; КонецФункции diff --git "a/plugins/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/plugins/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" index 3fbea67de..62230a3d9 100644 --- "a/plugins/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ "b/plugins/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" @@ -25,7 +25,7 @@ // { Settings interface // Функция - Получить настройки -// +// // Возвращаемое значение: // - Структура // @@ -37,53 +37,53 @@ ПутьФайлаНастроек = КонтекстЯдра.ПутьФайлаНастроек(); ФайлНастройки = Новый Файл(ПутьФайлаНастроек); СоздатьКоллекцияИсключаемыхКлючей(); - + Настройки = ПрочитатьНастройкиИзФайлаJSon(ПутьФайлаНастроек); Настройки = ДобавитьВНастройкиДанныеИзВложенныхФайловНастроек(Настройки, ИмяКлючаФайлаНастройки, ФайлНастройки.Путь); Объект.Настройки = Новый ФиксированнаяСтруктура(Настройки); - + Если Объект.Настройки.Свойство("Отладка") Тогда ЕстьФлагОтладки = Объект.Настройки.Отладка; - + Если ЕстьСвойство(КонтекстЯдра.Объект, "ФлагОтладки") Тогда - КонтекстЯдра.Объект.ФлагОтладки = ЕстьФлагОтладки; + КонтекстЯдра.Объект.ФлагОтладки = ЕстьФлагОтладки; КонтекстЯдра.Отладка(КонтекстЯдра.СтрШаблон_("НовоеЗначение КонтекстЯдра.Объект.ФлагОтладки %1", КонтекстЯдра.Объект.ФлагОтладки)); КонецЕсли; Если ЕстьСвойство(КонтекстЯдра.Объект, "DebugLog") Тогда - КонтекстЯдра.Объект.DebugLog = ЕстьФлагОтладки; + КонтекстЯдра.Объект.DebugLog = ЕстьФлагОтладки; КонтекстЯдра.Отладка(КонтекстЯдра.СтрШаблон_("НовоеЗначение КонтекстЯдра.Объект.DebugLog %1", КонтекстЯдра.Объект.DebugLog)); КонецЕсли; - + КонтекстЯдра.Отладка(КонтекстЯдра.СтрШаблон_("Объект.Настройки.Отладка %1", Объект.Настройки.Отладка)); КонтекстЯдра.Отладка(КонтекстЯдра.СтрШаблон_("ЕстьСвойство(КонтекстЯдра.Объект, ФлагОтладки) %1", ЕстьСвойство(КонтекстЯдра.Объект, "ФлагОтладки"))); КонтекстЯдра.Отладка(КонтекстЯдра.СтрШаблон_("КонтекстЯдра.Объект.ФлагОтладки %1", КонтекстЯдра.Объект.ФлагОтладки)); - + Если ЕстьФлагОтладки Тогда КонтекстЯдра.Отладка(""); КонтекстЯдра.Отладка("Файл настроек <" + ПутьФайлаНастроек + ">"); КонтекстЯдра.Отладка("Переданные настройки:"); ПоказатьСвойстваВРежимеОтладки(Объект.Настройки); КонтекстЯдра.Отладка(""); - КонецЕсли; + КонецЕсли; КонецЕсли; - - КонецЕсли; + + КонецЕсли; Возврат Объект.Настройки; КонецФункции // Функция - Получить настройку // // Параметры: -// КлючНастройки - - -// +// КлючНастройки - - +// // Возвращаемое значение: -// - +// - // &НаКлиенте Функция ПолучитьНастройку(Знач КлючНастройки) Экспорт - + ПолучитьНастройки(); - + Результат = Неопределено; Объект.Настройки.Свойство(КлючНастройки, Результат); Возврат Результат; @@ -91,32 +91,32 @@ КонецФункции // Позволяет одним вызовом получить значение из вложенных друг в друга структур -// по строке ключей, объединенных точкой. +// по строке ключей, объединенных точкой. // // Параметры: // ПутьНастроек - Строка - Путь или ключ настроек // СтруктураНастроек - Произвольный, Неопределено - полученное значение // ( необязательно ) -// +// // Возвращаемое значение: // Булево - Истина, если ключ/путь найден, иначе Ложь // -// Пример: +// Пример: // Структура = Новый Структура("Ключ1", Новый Структура("Ключ2", Новый Структура("Ключ3", 42))); // РезультатПроверки = ЕстьНастройка("Ключ1.Ключ2.Ключ3", ВремЗнач); // В результате получим ВремЗнач == 42 // &НаКлиенте Функция ЕстьНастройка(Знач ПутьНастроек, СтруктураНастроек = Неопределено) Экспорт - + Если СтруктураНастроек = Неопределено Тогда СтруктураНастроек = ПолучитьНастройки(); КонецЕсли; - + Если ТипЗнч(СтруктураНастроек) = Тип("Структура") Или ТипЗнч(СтруктураНастроек) = Тип("ФиксированнаяСтруктура") Тогда - + ПозТочки = Найти(ПутьНастроек, "."); - + Если ПозТочки = 0 Тогда Возврат СтруктураНастроек.Свойство(ПутьНастроек); Иначе @@ -126,11 +126,11 @@ Возврат ЕстьНастройка(ОстатокПути, СтруктураНастроек[ИмяТекущегоСвойства]); КонецЕсли; КонецЕсли; - + КонецЕсли; - + Возврат Ложь; - + КонецФункции // Процедура - Обновить @@ -145,13 +145,13 @@ // Процедура - Добавить настройку // // Параметры: -// Ключ - - -// Значение - - +// Ключ - - +// Значение - - // Процедура ДобавитьНастройку(Знач Ключ, Знач Значение) Экспорт ПолучитьНастройки(); - + Объект.Настройки.Вставить(Ключ, Значение); КонецПроцедуры @@ -160,15 +160,15 @@ // Процедура - Добавить настройки // // Параметры: -// ИсточникНастроек - - +// ИсточникНастроек - - // Процедура ДобавитьНастройки(Знач ИсточникНастроек) Экспорт ПолучитьНастройки(); - + Для каждого КлючЗначение Из ИсточникНастроек Цикл ДобавитьНастройку(КлючЗначение.Ключ, КлючЗначение.Значение); - КонецЦикла; + КонецЦикла; КонецПроцедуры // } Settings interface @@ -181,7 +181,7 @@ // } Settings interface &НаКлиенте -Функция ДобавитьВНастройкиДанныеИзВложенныхФайловНастроек(Знач Настройки, Знач ИмяКлючаФайлаНастройки, +Функция ДобавитьВНастройкиДанныеИзВложенныхФайловНастроек(Знач Настройки, Знач ИмяКлючаФайлаНастройки, Знач КаталогРодительскойНастройки) Результат = Новый Структура; @@ -193,12 +193,12 @@ Значение = ПрочитатьНастройкиИзФайлаJSon(КаталогРодительскойНастройки + "/" + ПутьДопФайлаНастроек); КонецЕсли; КонецЕсли; - + Если ТипЗнч(Значение) = Тип("Строка") Тогда Значение = Заменить_workspaceRoot_на_РабочийКаталогПроекта(Значение); КонецЕсли; - - Результат.Вставить(Настройка.Ключ, Значение); + + Результат.Вставить(Настройка.Ключ, Значение); КонецЦикла; Возврат Результат; @@ -208,7 +208,7 @@ Функция ПрочитатьНастройкиИзФайлаJSon(Знач ПутьФайлаНастроек) Результат = Новый Структура(); ФайлНастроек = Новый Файл(ПутьФайлаНастроек); - ФайлНастроекСуществует = Не ПустаяСтрока(ПутьФайлаНастроек) И + ФайлНастроекСуществует = Не ПустаяСтрока(ПутьФайлаНастроек) И (КонтекстЯдра.ЕстьПоддержкаАсинхронныхВызовов Или ФайлНастроек.Существует()); Если ФайлНастроекСуществует Тогда @@ -222,7 +222,7 @@ &НаКлиенте Функция ПрочитатьФайлJSON(Знач ИмяФайла, Знач ЧитатьВСоответствие = Ложь) //Экспорт ФайлСуществующий = Новый Файл(ИмяФайла); - + JsonСтрока = ПрочитатьФайл(ИмяФайла); JsonСтрока = УбратьКомментарииИзJsonСтроки(JsonСтрока); @@ -285,11 +285,11 @@ Если ТипЗнч(Значение) = Тип("Соответствие") Тогда Значение = ПреобразоватьСоответствиеВСтруктуру(Значение, КоллекцияИсключаемыхКлючей); КонецЕсли; - + Попытка - + Результат.Вставить(КлючЗначение.Ключ, Значение); - + Исключение Инфо = ИнформацияОбОшибке(); ОписаниеОшибки = "Ошибка загрузки настроек. Неверный ключ @@ -299,9 +299,9 @@ КонтекстЯдра.ЗафиксироватьОшибкуВЖурналеРегистрации("Настройки", ОписаниеОшибки); КонтекстЯдра.ВывестиСообщение(ОписаниеОшибки, СтатусСообщения.ОченьВажное); - + ВызватьИсключение; - + КонецПопытки; КонецЕсли; КонецЦикла; @@ -311,7 +311,7 @@ &НаКлиенте Процедура СоздатьКоллекцияИсключаемыхКлючей() КоллекцияИсключаемыхКлючей = Новый Соответствие; - КоллекцияИсключаемыхКлючей.Вставить("$schema", "$schema"); + КоллекцияИсключаемыхКлючей.Вставить("$schema", "$schema"); КонецПроцедуры &НаКлиенте @@ -319,6 +319,15 @@ Возврат СтрЗаменить(ИсходнаяСтрока, "$workspaceRoot", КонтекстЯдра.Объект.КаталогПроекта); КонецФункции +// Универсальная функция для проверки наличия свойств у значения любого типа данных +// +// Параметры: +// Объект - Любой - Коллекция любого типа, для которой необходимо проверить наличие свойства +// ИмяСвойства - Строка - имя проверяемого свойства +// +// Возвращаемое значение: +// Булево - Истина, если свойство существует +// &НаКлиенте Функция ЕстьСвойство(Знач Объект, Знач ИмяСвойства) Экспорт НачальноеЗНачение = Новый УникальныйИдентификатор(); @@ -342,19 +351,19 @@ КонецПроцедуры Функция СтрШаблон_(Знач СтрокаШаблон, Знач Парам1 = Неопределено, Знач Парам2 = Неопределено, Знач Парам3 = Неопределено, Знач Парам4 = Неопределено, Знач Парам5 = Неопределено) Экспорт - + МассивПараметров = Новый Массив; МассивПараметров.Добавить(Парам1); МассивПараметров.Добавить(Парам2); МассивПараметров.Добавить(Парам3); МассивПараметров.Добавить(Парам4); МассивПараметров.Добавить(Парам5); - + Для Сч = 1 По МассивПараметров.Количество() Цикл ТекЗначение = МассивПараметров[Сч-1]; СтрокаШаблон = СтрЗаменить(СтрокаШаблон, "%"+Сч, Строка(ТекЗначение)); КонецЦикла; - + Возврат СтрокаШаблон; - + КонецФункции \ No newline at end of file diff --git "a/plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Ext/ObjectModule.bsl" "b/plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Ext/ObjectModule.bsl" index 68b0263c9..448e9ab2f 100644 --- "a/plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Ext/ObjectModule.bsl" +++ "b/plugins/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/\320\241\320\265\321\200\320\270\320\260\320\273\320\270\320\267\320\260\321\202\320\276\321\200MXL/Ext/ObjectModule.bsl" @@ -22,7 +22,7 @@ Перем мТЗКэшОбъектов; Функция Версия() Экспорт - Версия = "5.7.0"; + Версия = "5.8.0"; Возврат Версия; КонецФункции @@ -1927,14 +1927,14 @@ Значение = Неопределено; Для каждого БизнесПроцессМенеджер из БизнесПроцессы Цикл ТочкиМаршрута = БизнесПроцессМенеджер.ТочкиМаршрута; - - Если ЗначениеЗаполнено(ТипЗначения_Строкой) - И ТочкиМаршрута.Количество() > 0 + + Если ЗначениеЗаполнено(ТипЗначения_Строкой) + И ТочкиМаршрута.Количество() > 0 И ТипЗнч(ТочкиМаршрута[0]) <> Тип(ТипЗначения_Строкой) Тогда - + Продолжить; - КонецЕсли; - + КонецЕсли; + Для каждого ТочкаМаршрута Из ТочкиМаршрута Цикл Если ВРег(ТочкаМаршрута.Имя) = ВРег(Значение_Строкой) Тогда Значение = ТочкаМаршрута; @@ -1946,26 +1946,26 @@ КонецФункции Функция ТипЗначенияТочкиБизнесПроцессаСтрокой(ТочкаМаршрута) - + Значение = Неопределено; - + Для каждого БизнесПроцессМенеджер из БизнесПроцессы Цикл ТочкиМаршрута = БизнесПроцессМенеджер.ТочкиМаршрута; - - Если ТочкиМаршрута.Количество() > 0 + + Если ТочкиМаршрута.Количество() > 0 И ТипЗнч(ТочкиМаршрута[0]) = ТипЗнч(ТочкаМаршрута) Тогда - + Значение = СтрЗаменить(Строка(БизнесПроцессМенеджер), "БизнесПроцессМенеджер.", "ТочкаМаршрутаБизнесПроцессаСсылка."); Возврат Значение - + Иначе Продолжить; КонецЕсли; - + КонецЦикла; Возврат Значение; - + КонецФункции Функция НайтиБлижайшийДокументПоНомеру(МетаданныеДокумента, Значение_Строкой) diff --git "a/plugins/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/Ext/ObjectModule.bsl" "b/plugins/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/Ext/ObjectModule.bsl" index 6691312cf..1a763fedd 100644 --- "a/plugins/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/Ext/ObjectModule.bsl" +++ "b/plugins/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/Ext/ObjectModule.bsl" @@ -34,6 +34,12 @@ Функция ВыполнитьКомандуОСБезПоказаЧерногоОкна(Знач ТекстКоманды, Знач ЖдатьОкончания = Истина, Знач ИспользоватьКодировкуТекстаUTF8 = Истина) Экспорт + Если КонтекстЯдра.ЭтоLinux Тогда + КодВозврата = 0; + ЗапуститьПриложение(ТекстКоманды,, ЖдатьОкончания, КодВозврата); + Возврат КодВозврата; + КонецЕсли; + Если ЖдатьОкончания = -1 Тогда ЖдатьОкончания = Истина; ИначеЕсли ЖдатьОкончания = 0 Тогда @@ -73,6 +79,80 @@ Возврат Рез; КонецФункции +// Выполняет команду системы, при этом на экране не будет показано окно cmd +// Использует WshShell. +// +// Параметры: +// ТекстКоманды - Строка - выполняемая команда +// ЖдатьОкончания - Булево, Число - флаг ожидания окончания выполнения команды: +// Если ЖдатьОкончания = Истина (или -1), тогда будет ожидания окончания работы приложения +// Если ЖдатьОкончания = Ложь (или 0), тогда нет ожидания +// ИспользоватьКодировкуТекстаUTF8 - Булево - командный файл будет запущен с кодировкой консоли UTF8 через chcp 65001 +// КонсольныйВывод - Строка - исходящий параметр. В нем возвращается весь консольный вывод скрипта +// +// Возвращаемое значение: +// Число - Результат выполнения скрипта. 0 - если не было ошибок. +// +&НаКлиенте +Функция ВыполнитьКомандуОСБезПоказаЧерногоОкнаСВыводом(Знач ТекстКоманды, Знач ЖдатьОкончания = Истина, + Знач ИспользоватьКодировкуТекстаUTF8 = Истина, КонсольныйВывод = "") Экспорт + + Если КонтекстЯдра.ЭтоLinux Тогда + КодВозврата = 0; + ЗапуститьПриложение(ТекстКоманды,, ЖдатьОкончания, КодВозврата); + Возврат КодВозврата; + КонецЕсли; + + Если ЖдатьОкончания = -1 Тогда + ЖдатьОкончания = Истина; + ИначеЕсли ЖдатьОкончания = 0 Тогда + ЖдатьОкончания = Ложь; + КонецЕсли; + + УдалятьФайл = Ложь; + ИмяВременногоФайлаКоманды = ТекстКоманды; + Если ИспользоватьКодировкуТекстаUTF8 Тогда + + ИмяВременногоФайлаКоманды = ПолучитьИмяВременногоФайла("bat"); + + //эти строки нужны для записи файла без BOM + ЗТ = Новый ЗаписьТекста(ИмяВременногоФайлаКоманды, "CESU-8", , Ложь); + ЗТ.ЗаписатьСтроку("chcp 65001"); + + ЗТ.ЗаписатьСтроку(ТекстКоманды); + ЗТ.Закрыть(); + + УдалятьФайл = Истина; + КонецЕсли; + + ИмяФайлаВывода = ПолучитьИмяВременногоФайла("txt"); + ИмяВременногоФайлаКоманды = "cmd /c """ + ИмяВременногоФайлаКоманды + " > """ + ИмяФайлаВывода + """"; + + КонтекстЯдра.Отладка(ТекстКоманды); + //КонтекстЯдра.Отладка(ИмяВременногоФайлаКоманды); + + WshShell = ПолучитьWshShell(); + + Рез = WshShell.Run(ИмяВременногоФайлаКоманды, 0, ?(ЖдатьОкончания, -1, 0)); + Если Рез = 0 Тогда + // команда выполнилась успешно + ЧТ = Новый ЧтениеТекста(ИмяФайлаВывода); + КонсольныйВывод = ЧТ.Прочитать(); + ЧТ.Закрыть(); + КонецЕсли; + + Если ЖдатьОкончания И УдалятьФайл Тогда + //иначе удалять нельзя + Если КонтекстЯдра.ЕстьПоддержкаАсинхронныхВызовов Тогда + // для скорости не удаляем временный файл, сервер потом удалит КонтекстЯдра.УдалитьФайлыКомандаСистемы(ИмяВременногоФайлаКоманды); + Иначе + УдалитьФайлы(ИмяВременногоФайлаКоманды); + КонецЕсли; + КонецЕсли; + + Возврат Рез; +КонецФункции + // далее переменная WshShell будет закеширована, чтобы не создавать ComObject каждый раз Функция ПолучитьWshShell() Экспорт @@ -126,6 +206,12 @@ КонецФункции // УстановленOneScript() Функция ПолучитьМассивPIDПроцессов(ИмяОбраза) Экспорт + МассивProcessID = Новый Массив; + Если КонтекстЯдра.ЭтоLinux Тогда + КонтекстЯдра.СделатьСообщение("ПолучитьМассивPIDПроцессов не доступно в Linux"); + Возврат МассивProcessID; + КонецЕсли; + ИмяВременногоФайла = ПолучитьИмяВременногоФайла("txt"); ИмяВременногоBat = ПолучитьИмяВременногоФайла("bat"); ЗТ = Новый ЗаписьТекста(ИмяВременногоBat, "windows-1251", , Истина); @@ -138,7 +224,6 @@ Текст = Новый ЧтениеТекста; Текст.Открыть(ИмяВременногоФайла, "UTF-8"); - МассивProcessID = Новый Массив; ProcessID = Неопределено; Пока Истина Цикл Стр = Текст.ПрочитатьСтроку(); @@ -224,8 +309,22 @@ КонецПроцедуры +// Получить массив PID процессов "1cv8.exe" и "1cv8c.exe" +// +// Параметры: +// УчитыватьЗаголовокПриложения - Булево - учитываем только окно, у которых заголовок приложения +// совпадает с заголовком текущего приложения +// +// Возвращаемое значение: +// Массив - массив PID процессов "1cv8.exe" и "1cv8c.exe" +// Функция ПолучитьМассивPIDОкон1С(УчитыватьЗаголовокПриложения = Ложь) Экспорт Рез = Новый Массив; + + Если КонтекстЯдра.ЭтоLinux Тогда + КонтекстЯдра.СделатьСообщение("ПолучитьМассивPIDОкон1С не доступно в Linux"); + Возврат Рез; + КонецЕсли; ЗаполнитьМассивPIDПоИмениПроцесса("1cv8.exe", Рез); ЗаполнитьМассивPIDПоИмениПроцесса("1cv8c.exe", Рез); @@ -235,6 +334,11 @@ КонецФункции Процедура СделатьОкноПроцессаАктивным(PID) Экспорт + Если КонтекстЯдра.ЭтоLinux Тогда + КонтекстЯдра.СделатьСообщение("СделатьОкноПроцессаАктивным не доступно в Linux"); + Возврат; + КонецЕсли; + WshShell = ПолучитьWshShell(); Попытка @@ -245,6 +349,10 @@ КонецПроцедуры Процедура TASKKILL(ИмяПриложения) Экспорт + Если КонтекстЯдра.ЭтоLinux Тогда + КонтекстЯдра.СделатьСообщение("TASKKILL не доступно в Linux"); + Возврат; + КонецЕсли; СтрокаКоманды = "TASKKILL /F /IM " + ИмяПриложения; ВыполнитьКомандуОСБезПоказаЧерногоОкна(СтрокаКоманды); КонецПроцедуры diff --git "a/plugins/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/plugins/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" index 570d5381f..c7564dde1 100644 --- "a/plugins/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ "b/plugins/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217\320\274\320\270/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" @@ -1,6 +1,9 @@ &НаКлиенте Перем WshShell; +&НаКлиенте +Перем ЭтоLinux; + &НаКлиенте Перем КонтекстЯдра; @@ -40,6 +43,12 @@ Функция ВыполнитьКомандуОСБезПоказаЧерногоОкна(Знач ТекстКоманды, Знач ЖдатьОкончания = Истина, Знач ИспользоватьКодировкуТекстаUTF8 = Истина) Экспорт + Если КонтекстЯдра.ЭтоLinux Тогда + КодВозврата = 0; + ЗапуститьПриложение(ТекстКоманды,, ЖдатьОкончания, КодВозврата); + Возврат КодВозврата; + КонецЕсли; + Если ЖдатьОкончания = -1 Тогда ЖдатьОкончания = Истина; ИначеЕсли ЖдатьОкончания = 0 Тогда @@ -103,6 +112,12 @@ Функция ВыполнитьКомандуОСБезПоказаЧерногоОкнаСВыводом(Знач ТекстКоманды, Знач ЖдатьОкончания = Истина, Знач ИспользоватьКодировкуТекстаUTF8 = Истина, КонсольныйВывод = "") Экспорт + Если КонтекстЯдра.ЭтоLinux Тогда + КодВозврата = 0; + ЗапуститьПриложение(ТекстКоманды,, ЖдатьОкончания, КодВозврата); + Возврат КодВозврата; + КонецЕсли; + Если ЖдатьОкончания = -1 Тогда ЖдатьОкончания = Истина; ИначеЕсли ЖдатьОкончания = 0 Тогда @@ -209,6 +224,12 @@ &НаКлиенте Функция ПолучитьМассивPIDПроцессов(ИмяОбраза) Экспорт + МассивProcessID = Новый Массив; + Если КонтекстЯдра.ЭтоLinux Тогда + КонтекстЯдра.СделатьСообщение("ПолучитьМассивPIDПроцессов не доступно в Linux"); + Возврат МассивProcessID; + КонецЕсли; + ИмяВременногоФайла = ПолучитьИмяВременногоФайла("txt"); ИмяВременногоBat = ПолучитьИмяВременногоФайла("bat"); ЗТ = Новый ЗаписьТекста(ИмяВременногоBat, "windows-1251", , Истина); @@ -221,7 +242,6 @@ Текст = Новый ЧтениеТекста; Текст.Открыть(ИмяВременногоФайла, "UTF-8"); - МассивProcessID = Новый Массив; ProcessID = Неопределено; Пока Истина Цикл Стр = Текст.ПрочитатьСтроку(); @@ -320,6 +340,11 @@ // Функция ПолучитьМассивPIDОкон1С(УчитыватьЗаголовокПриложения = Ложь) Экспорт Рез = Новый Массив; + + Если КонтекстЯдра.ЭтоLinux Тогда + КонтекстЯдра.СделатьСообщение("ПолучитьМассивPIDОкон1С не доступно в Linux"); + Возврат Рез; + КонецЕсли; ЗаполнитьМассивPIDПоИмениПроцесса("1cv8.exe", УчитыватьЗаголовокПриложения, Рез); ЗаполнитьМассивPIDПоИмениПроцесса("1cv8c.exe", УчитыватьЗаголовокПриложения, Рез); @@ -331,6 +356,11 @@ &НаКлиенте Процедура СделатьОкноПроцессаАктивным(PID) Экспорт + Если КонтекстЯдра.ЭтоLinux Тогда + КонтекстЯдра.СделатьСообщение("СделатьОкноПроцессаАктивным не доступно в Linux"); + Возврат; + КонецЕсли; + WshShell = ПолучитьWshShell(); Попытка @@ -342,6 +372,10 @@ &НаКлиенте Процедура TASKKILL(ИмяПриложения) Экспорт + Если КонтекстЯдра.ЭтоLinux Тогда + КонтекстЯдра.СделатьСообщение("TASKKILL не доступно в Linux"); + Возврат; + КонецЕсли; СтрокаКоманды = "TASKKILL /F /IM " + ИмяПриложения; ВыполнитьКомандуОСБезПоказаЧерногоОкна(СтрокаКоманды); КонецПроцедуры diff --git "a/plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/Ext/ObjectModule.bsl" "b/plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/Ext/ObjectModule.bsl" index 4e8d53932..399a411bf 100644 --- "a/plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/Ext/ObjectModule.bsl" +++ "b/plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/Ext/ObjectModule.bsl" @@ -7,7 +7,7 @@ Результат.Вставить("Тип", ВозможныеТипыПлагинов.Утилита); Результат.Вставить("Идентификатор", Метаданные().Имя); Результат.Вставить("Представление", "УтвержденияBDD"); - + Возврат Новый ФиксированнаяСтруктура(Результат); КонецФункции @@ -19,13 +19,13 @@ ЭтотОбъект.ПроверяемоеЗначение = ПроверяемоеЗначение; ЭтотОбъект.ДопСообщениеОшибки = Сообщение; ЭтотОбъект.ФлагОтрицания = Ложь; - + Возврат ЭтотОбъект; КонецФункции Функция Не_() Экспорт ЭтотОбъект.ФлагОтрицания = Истина; - + Возврат ЭтотОбъект; КонецФункции @@ -36,7 +36,7 @@ Функция Метод(Знач ИмяМетода, Знач ПараметрыМетода = Неопределено) Экспорт ЭтотОбъект.ИмяМетода = ИмяМетода; ЭтотОбъект.ПараметрыМетода = ПараметрыМетода; - + Возврат ЭтотОбъект; КонецФункции @@ -45,7 +45,7 @@ СообщениеОшибки = СформироватьСообщениеОбОшибке(Формат(ПроверяемоеЗначение, "БЛ=Ложь; БИ=Истина"), "является ИСТИНОЙ."); ВызватьОшибкуПроверки(СообщениеОшибки); КонецЕсли; - + Возврат ЭтотОбъект; КонецФункции @@ -58,7 +58,7 @@ СообщениеОшибки = СформироватьСообщениеОбОшибке(Формат(ПроверяемоеЗначение, "БЛ=Ложь; БИ=Истина"), "является ЛОЖЬЮ."); ВызватьОшибкуПроверки(СообщениеОшибки); КонецЕсли; - + Возврат ЭтотОбъект; КонецФункции @@ -71,7 +71,7 @@ СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "РАВНО (" + ОжидаемоеЗначение + ")."); ВызватьОшибкуПроверки(СообщениеОшибки); КонецЕсли; - + Возврат ЭтотОбъект; КонецФункции @@ -80,7 +80,7 @@ СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "БОЛЬШЕ (" + МеньшееЗначение + ")."); ВызватьОшибкуПроверки(СообщениеОшибки); КонецЕсли; - + Возврат ЭтотОбъект; КонецФункции @@ -89,7 +89,7 @@ СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "БОЛЬШЕ ИЛИ РАВНО (" + МеньшееИлиРавноеЗначение + ")."); ВызватьОшибкуПроверки(СообщениеОшибки); КонецЕсли; - + Возврат ЭтотОбъект; КонецФункции @@ -102,7 +102,7 @@ СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "МЕНЬШЕ ИЛИ РАВНО (" + БольшееИлиРавноеЗначение + ")."); ВызватьОшибкуПроверки(СообщениеОшибки); КонецЕсли; - + Возврат ЭтотОбъект; КонецФункции @@ -115,7 +115,7 @@ СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "МЕНЬШЕ (" + БольшееЗначение + ")."); ВызватьОшибкуПроверки(СообщениеОшибки); КонецЕсли; - + Возврат ЭтотОбъект; КонецФункции @@ -124,7 +124,7 @@ СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "является ЗАПОЛНЕННЫМ."); ВызватьОшибкуПроверки(СообщениеОшибки); КонецЕсли; - + Возврат ЭтотОбъект; КонецФункции @@ -133,7 +133,7 @@ СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "СУЩЕСТВУЕТ."); ВызватьОшибкуПроверки(СообщениеОшибки); КонецЕсли; - + Возврат ЭтотОбъект; КонецФункции @@ -142,7 +142,7 @@ СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "является НЕОПРЕДЕЛЕНО."); ВызватьОшибкуПроверки(СообщениеОшибки); КонецЕсли; - + Возврат ЭтотОбъект; КонецФункции @@ -155,7 +155,7 @@ СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "является NULL."); ВызватьОшибкуПроверки(СообщениеОшибки); КонецЕсли; - + Возврат ЭтотОбъект; КонецФункции @@ -170,7 +170,7 @@ СообщениеОшибки = СформироватьСообщениеОбОшибке("тип - " + ТипПроверяемогоЗначения, "имеет тип (" + ОжидаемыйТип + ")."); ВызватьОшибкуПроверки(СообщениеОшибки); КонецЕсли; - + Возврат ЭтотОбъект; КонецФункции @@ -179,16 +179,22 @@ СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "МЕЖДУ (" + НачальноеЗначение + ") и (" + КонечноеЗначение + ")."); ВызватьОшибкуПроверки(СообщениеОшибки); КонецЕсли; - + Возврат ЭтотОбъект; КонецФункции Функция Содержит(Знач ИскомоеЗначение) Экспорт Перем ИскомоеЗначениеНайдено; - + ТипПроверяемоегоЗначения = ТипЗнч(ПроверяемоеЗначение); Если ТипПроверяемоегоЗначения = Тип("Строка") Тогда - ИскомоеЗначениеНайдено = Найти(ПроверяемоеЗначение, ИскомоеЗначение) > 0; + Если СтрЧислоСтрок(ИскомоеЗначение) = 1 Тогда + ИскомоеЗначениеНайдено = Найти(ПроверяемоеЗначение, ИскомоеЗначение) > 0; + Иначе + ПроверитьЧтоМногострочнаяСтрокаСодержитПодстрокуБезУчетаНачальныхКонечныхПробеловВПодстроках(ПроверяемоеЗначение, ИскомоеЗначение, ФорматДСО(ДопСообщениеОшибки)); + ИскомоеЗначениеНайдено = Истина; + КонецЕсли; + Возврат ЭтотОбъект; ИначеЕсли ТипПроверяемоегоЗначения = Тип("Массив") Или ТипПроверяемоегоЗначения = Тип("ФиксированныйМассив") Тогда ИскомоеЗначениеНайдено = ПроверяемоеЗначение.Найти(ИскомоеЗначение) <> Неопределено; ИначеЕсли ТипПроверяемоегоЗначения = Тип("Структура") Или ТипПроверяемоегоЗначения = Тип("ФиксированнаяСтруктура") @@ -202,23 +208,23 @@ ИначеЕсли ТипПроверяемоегоЗначения = Тип("СписокЗначений") Тогда ИскомоеЗначениеНайдено = ПроверяемоеЗначение.НайтиПоЗначению(ИскомоеЗначение) <> Неопределено; КонецЕсли; - + Если ИскомоеЗначениеНайдено = Неопределено Тогда СообщениеОшибки = "Утверждение ""Содержит"" не умеет работать с типом <" + ТипПроверяемоегоЗначения + ">." + ФорматДСО(ДопСообщениеОшибки); ВызватьИсключение СообщениеОшибки; КонецЕсли; - + Если Не ЛогическоеВыражениеВерно(ИскомоеЗначениеНайдено) Тогда СообщениеОшибки = СформироватьСообщениеОбОшибке(ПроверяемоеЗначение, "СОДЕРЖИТ (" + ИскомоеЗначение + ")."); ВызватьОшибкуПроверки(СообщениеОшибки); КонецЕсли; - + Возврат ЭтотОбъект; КонецФункции Функция ИмеетДлину(Знач ОжидаемаяДлина) Экспорт Перем ФактическаяДлина; - + ТипПроверяемоегоЗначения = ТипЗнч(ПроверяемоеЗначение); Если ТипПроверяемоегоЗначения = Тип("Строка") Тогда ФактическаяДлина = СтрДлина(ПроверяемоеЗначение); @@ -228,17 +234,17 @@ Или ТипПроверяемоегоЗначения = Тип("СписокЗначений") Тогда ФактическаяДлина = ПроверяемоеЗначение.Количество(); КонецЕсли; - + Если ФактическаяДлина = Неопределено Тогда СообщениеОшибки = "Утверждение ""ИмеетДлину"" не умеет работать с типом <" + ТипПроверяемоегоЗначения + ">." + ФорматДСО(ДопСообщениеОшибки); ВызватьИсключение СообщениеОшибки; КонецЕсли; - + Если Не ЛогическоеВыражениеВерно(ФактическаяДлина = ОжидаемаяДлина) Тогда СообщениеОшибки = СформироватьСообщениеОбОшибке("<" +ПроверяемоеЗначение + "> с длиной " + ФактическаяДлина, "ИМЕЕТ ДЛИНУ (" + ОжидаемаяДлина + ")."); ВызватьОшибкуПроверки(СообщениеОшибки); КонецЕсли; - + Возврат ЭтотОбъект; КонецФункции @@ -252,7 +258,7 @@ СтрокаПараметры = Сред(СтрокаПараметры, 2); КонецЕсли; СтрокаДляВыполнения = "Контекст." + ИмяМетода + "(" + СтрокаПараметры + ")"; - + ИсключениеВозникло = Ложь; Попытка Выполнить(СтрокаДляВыполнения); @@ -260,7 +266,7 @@ ИсключениеВозникло = Истина; ТекстИсключения = ОписаниеОшибки(); КонецПопытки; - + Если Не ЛогическоеВыражениеВерно(ИсключениеВозникло И Найти(ТекстИсключения, ФрагментИсключения) > 0) Тогда СообщениеОшибки = "Ожидали, что " + СтрокаДляВыполнения + ?(ФлагОтрицания, " НЕ ", " ") @@ -268,7 +274,7 @@ + ?(ЗначениеЗаполнено(ФрагментИсключения), " СОДЕРЖАЩЕЕ ТЕКСТ <" + ФрагментИсключения + ">, а был текст <" + ТекстИсключения + ">.", ""); ВызватьОшибкуПроверки(СообщениеОшибки); КонецЕсли; - + Возврат ЭтотОбъект; КонецФункции @@ -277,7 +283,7 @@ Если ДопСообщениеОшибки = "" Тогда Возврат ""; КонецЕсли; - + Возврат Символы.ПС + ДопСообщениеОшибки; КонецФункции @@ -290,13 +296,82 @@ Результат = ФлагОтрицания <> ЛогическоеВыражение; ФлагОтрицанияДляСообщения = ФлагОтрицания; ФлагОтрицания = Ложь; - + Возврат Результат; КонецФункции Функция СформироватьСообщениеОбОшибке(Знач ПроверяемоеЗначение, Знач Ожидание) Возврат "Ожидали, что проверяемое значение (" + ПроверяемоеЗначение + ")" + ?(ФлагОтрицанияДляСообщения, " НЕ ", " ") + Ожидание + ФорматДСО(ДопСообщениеОшибки); КонецФункции + +Процедура ПроверитьЧтоМногострочнаяСтрокаСодержитПодстрокуБезУчетаНачальныхКонечныхПробеловВПодстроках(Знач Строка, Знач Подстрока, ДопСообщениеОшибки = "") + СообщениеОшибки = ""; + Нашли = МногострочнаяСтрокаСодержитПодстрокуБезУчетаНачальныхКонечныхПробеловВПодстроках(Строка, Подстрока, СообщениеОшибки); + Если Не Нашли Тогда + ВызватьОшибкуПроверки( СтрШаблон_("Ожидали, что в строке < + |%1 + |> + |найдем подстроку< + |%2 + |> + |А это не так. + |Уточнение: %3. + |%4", Строка, Подстрока, СообщениеОшибки, ДопСообщениеОшибки)); + КонецЕсли; +КонецПроцедуры + +Функция МногострочнаяСтрокаСодержитПодстрокуБезУчетаНачальныхКонечныхПробеловВПодстроках(Знач Строка, Знач Подстрока, СообщениеОшибки = "") + ПерваяСтрока = СокрЛП(СтрПолучитьСтроку(Подстрока, 1)); + НашлиПервуюСтроку = Ложь; + Для Счетчик = 1 По СтрЧислоСтрок(Строка) Цикл + ОчереднаяСтрока = СокрЛП(СтрПолучитьСтроку(Строка, Счетчик)); + НашлиПервуюСтроку = Найти(ОчереднаяСтрока, ПерваяСтрока) <> 0; + Если НашлиПервуюСтроку Тогда + Прервать; + КонецЕсли; + КонецЦикла; + Если Не НашлиПервуюСтроку Тогда + СообщениеОшибки = СтрШаблон_("Не нашли первую же подстроку <%1>", ПерваяСтрока); + Возврат Ложь; + КонецЕсли; + + СчетчикЧтоИщем = 2; + Для Счетчик = Счетчик + 1 По СтрЧислоСтрок(Строка) Цикл + ОчереднаяСтрока = СокрЛП(СтрПолучитьСтроку(Строка, Счетчик)); + ЧтоИщем = СокрЛП(СтрПолучитьСтроку(Подстрока, СчетчикЧтоИщем)); + Поз = Найти(ОчереднаяСтрока, ЧтоИщем); + Если Поз = 0 Тогда + СообщениеОшибки = СтрШаблон_("Не нашли подстроку № %1 <%2>", СчетчикЧтоИщем, ЧтоИщем); + Возврат Ложь; + Иначе + СчетчикЧтоИщем = СчетчикЧтоИщем + 1; + Если СчетчикЧтоИщем > СтрЧислоСтрок(Подстрока) Тогда + Возврат Истина; + КонецЕсли; + КонецЕсли; + КонецЦикла; + Возврат СчетчикЧтоИщем > СтрЧислоСтрок(Подстрока); +КонецФункции + +// Замена функции СтрШаблон на конфигурациях с режимом совместимости < 8.3.6 +// При внедрении в конфигурацию с режимом совместимости >= 8.3.6 данную функцию необходимо удалить +// +Функция СтрШаблон_(Знач СтрокаШаблон, Знач Парам1 = Неопределено, Знач Парам2 = Неопределено, + Знач Парам3 = Неопределено, Знач Парам4 = Неопределено) Экспорт + + МассивПараметров = Новый Массив; + МассивПараметров.Добавить(Парам1); + МассивПараметров.Добавить(Парам2); + МассивПараметров.Добавить(Парам3); + МассивПараметров.Добавить(Парам4); + + Для Сч = 1 По МассивПараметров.Количество() Цикл + ТекЗначение = МассивПараметров[Сч-1]; + СтрокаШаблон = СтрЗаменить(СтрокаШаблон, "%"+Сч, Строка(ТекЗначение)); + КонецЦикла; + Возврат СтрокаШаблон; +КонецФункции + // } Helpers СтатусыРезультатаТестирования = Новый Структура; diff --git "a/plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" index e834c90a2..2e8b585bf 100644 --- "a/plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ "b/plugins/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217BDD/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" @@ -1,5 +1,7 @@ &НаКлиенте Перем КонтекстЯдра; +&НаКлиенте +Перем СтатусыРезультатаТестирования; // { Plugin interface &НаКлиенте @@ -22,14 +24,14 @@ &НаКлиенте Функция Что(Знач ПроверяемоеЗначениеПараметр, Знач Сообщение = "") Экспорт ВыполнитьМетодОбъектаНаСервере("Что", 2, ПроверяемоеЗначениеПараметр, Сообщение); - + Возврат ЭтаФорма; КонецФункции &НаКлиенте Функция Не_() Экспорт ВыполнитьМетодОбъектаНаСервере("Не_", 0); - + Возврат ЭтаФорма; КонецФункции @@ -41,14 +43,14 @@ &НаКлиенте Функция Метод(Знач ИмяМетода, Знач ПараметрыМетода = Неопределено) Экспорт ВыполнитьМетодОбъектаНаСервере("Метод", 2, ИмяМетода, ПараметрыМетода); - + Возврат ЭтаФорма; КонецФункции &НаКлиенте Функция ЭтоИстина() Экспорт ВыполнитьМетодОбъектаНаСервере("ЭтоИстина", 0); - + Возврат ЭтаФорма; КонецФункции @@ -60,7 +62,7 @@ &НаКлиенте Функция ЭтоЛожь() Экспорт ВыполнитьМетодОбъектаНаСервере("ЭтоЛожь", 0); - + Возврат ЭтаФорма; КонецФункции @@ -72,21 +74,21 @@ &НаКлиенте Функция Равно(Знач ОжидаемоеЗначение) Экспорт ВыполнитьМетодОбъектаНаСервере("Равно", 1, ОжидаемоеЗначение); - + Возврат ЭтаФорма; КонецФункции &НаКлиенте Функция Больше(Знач МеньшееЗначение) Экспорт ВыполнитьМетодОбъектаНаСервере("Больше", 1, МеньшееЗначение); - + Возврат ЭтаФорма; КонецФункции &НаКлиенте Функция БольшеИлиРавно(Знач МеньшееИлиРавноеЗначение) Экспорт ВыполнитьМетодОбъектаНаСервере("БольшеИлиРавно", 1, МеньшееИлиРавноеЗначение); - + Возврат ЭтаФорма; КонецФункции @@ -98,7 +100,7 @@ &НаКлиенте Функция МеньшеИлиРавно(Знач БольшееИлиРавноеЗначение) Экспорт ВыполнитьМетодОбъектаНаСервере("МеньшеИлиРавно", 1, БольшееИлиРавноеЗначение); - + Возврат ЭтаФорма; КонецФункции @@ -110,28 +112,28 @@ &НаКлиенте Функция Меньше(Знач БольшееЗначение) Экспорт ВыполнитьМетодОбъектаНаСервере("Меньше", 1, БольшееЗначение); - + Возврат ЭтаФорма; КонецФункции &НаКлиенте Функция Заполнено() Экспорт ВыполнитьМетодОбъектаНаСервере("Заполнено", 0); - + Возврат ЭтаФорма; КонецФункции &НаКлиенте Функция Существует() Экспорт ВыполнитьМетодОбъектаНаСервере("Существует", 0); - + Возврат ЭтаФорма; КонецФункции &НаКлиенте Функция ЭтоНеопределено() Экспорт ВыполнитьМетодОбъектаНаСервере("ЭтоНеопределено", 0); - + Возврат ЭтаФорма; КонецФункции @@ -143,7 +145,7 @@ &НаКлиенте Функция ЭтоNull() Экспорт ВыполнитьМетодОбъектаНаСервере("ЭтоNull", 0); - + Возврат ЭтаФорма; КонецФункции @@ -155,35 +157,48 @@ &НаКлиенте Функция ИмеетТип(Знач ТипИлиИмяТипа) Экспорт ВыполнитьМетодОбъектаНаСервере("ИмеетТип", 1, ТипИлиИмяТипа); - + Возврат ЭтаФорма; КонецФункции &НаКлиенте Функция Между(Знач НачальноеЗначение, Знач КонечноеЗначение) Экспорт ВыполнитьМетодОбъектаНаСервере("Между", 2, НачальноеЗначение, КонечноеЗначение); - + Возврат ЭтаФорма; КонецФункции &НаКлиенте Функция Содержит(Знач ИскомоеЗначение) Экспорт + ПроверяемоеЗначение = Объект.ПроверяемоеЗначение; + ДопСообщениеОшибки = Объект.ДопСообщениеОшибки; + ТипПроверяемоегоЗначения = ТипЗнч(Объект.ПроверяемоеЗначение); + Если ТипПроверяемоегоЗначения = Тип("Строка") Тогда + Если СтрЧислоСтрок(ИскомоеЗначение) = 1 Тогда + ИскомоеЗначениеНайдено = Найти(ПроверяемоеЗначение, ИскомоеЗначение) > 0; + Иначе + ПроверитьЧтоМногострочнаяСтрокаСодержитПодстрокуБезУчетаНачальныхКонечныхПробеловВПодстроках(ПроверяемоеЗначение, ИскомоеЗначение, ФорматДСО(ДопСообщениеОшибки)); + ИскомоеЗначениеНайдено = Истина; + КонецЕсли; + Возврат ЭтаФорма; + КонецЕсли; + ВыполнитьМетодОбъектаНаСервере("Содержит", 1, ИскомоеЗначение); - + Возврат ЭтаФорма; КонецФункции &НаКлиенте Функция ИмеетДлину(Знач ОжидаемаяДлина) Экспорт ВыполнитьМетодОбъектаНаСервере("ИмеетДлину", 1, ОжидаемаяДлина); - + Возврат ЭтаФорма; КонецФункции &НаКлиенте Функция ВыбрасываетИсключение(Знач ФрагментИсключения = "") Экспорт ВыполнитьМетодОбъектаНаСервере("ВыбрасываетИсключение", 1, ФрагментИсключения); - + Возврат ЭтаФорма; КонецФункции @@ -191,21 +206,21 @@ &НаСервере Процедура ВыполнитьМетодОбъектаНаСервере(Знач ИмяМетода, Знач КоличествоПараметров, Знач Параметр1 = Неопределено, Знач Параметр2 = Неопределено) ОбъектНаСервере = ЭтотОбъектНаСервере(); - + СтрокаПараметры = ""; Если КоличествоПараметров = 1 Тогда СтрокаПараметры = "Параметр1"; ИначеЕсли КоличествоПараметров = 2 Тогда СтрокаПараметры = "Параметр1, Параметр2"; КонецЕсли; - + Попытка Выполнить("ОбъектНаСервере." + ИмяМетода + "(" + СтрокаПараметры + ")"); Исключение ОписаниеОшибки = ОписаниеОшибки(); ВызватьИсключение "Вызов метода <" + ИмяМетода +">: " + ОписаниеОшибки; КонецПопытки; - + ЗначениеВРеквизитФормы(ОбъектНаСервере, "Объект"); КонецПроцедуры @@ -213,4 +228,77 @@ Функция ЭтотОбъектНаСервере() Возврат РеквизитФормыВЗначение("Объект"); КонецФункции + +&НаКлиенте +Функция ФорматДСО(Знач ДопСообщениеОшибки) + Если ДопСообщениеОшибки = "" Тогда + Возврат ""; + КонецЕсли; + + Возврат Символы.ПС + ДопСообщениеОшибки; +КонецФункции + +&НаКлиенте +Процедура ВызватьОшибкуПроверки(Знач СообщениеОшибки) + Префикс = "["+ СтатусыРезультатаТестирования.ОшибкаПроверки + "]"; + ВызватьИсключение Префикс + " " + СообщениеОшибки; +КонецПроцедуры + +&НаКлиенте +Процедура ПроверитьЧтоМногострочнаяСтрокаСодержитПодстрокуБезУчетаНачальныхКонечныхПробеловВПодстроках(Знач Строка, Знач Подстрока, ДопСообщениеОшибки = "") + СообщениеОшибки = ""; + Нашли = МногострочнаяСтрокаСодержитПодстрокуБезУчетаНачальныхКонечныхПробеловВПодстроках(Строка, Подстрока, СообщениеОшибки); + Если Не Нашли Тогда + ВызватьОшибкуПроверки( КонтекстЯдра.СтрШаблон_("Ожидали, что в строке < + |%1 + |> + |найдем подстроку< + |%2 + |> + |А это не так. + |Уточнение: %3. + |%4", Строка, Подстрока, СообщениеОшибки, ДопСообщениеОшибки)); + КонецЕсли; +КонецПроцедуры + +&НаКлиенте +Функция МногострочнаяСтрокаСодержитПодстрокуБезУчетаНачальныхКонечныхПробеловВПодстроках(Знач Строка, Знач Подстрока, СообщениеОшибки = "") + ПерваяСтрока = СокрЛП(СтрПолучитьСтроку(Подстрока, 1)); + НашлиПервуюСтроку = Ложь; + Для Счетчик = 1 По СтрЧислоСтрок(Строка) Цикл + ОчереднаяСтрока = СокрЛП(СтрПолучитьСтроку(Строка, Счетчик)); + НашлиПервуюСтроку = Найти(ОчереднаяСтрока, ПерваяСтрока) <> 0; + Если НашлиПервуюСтроку Тогда + Прервать; + КонецЕсли; + КонецЦикла; + Если Не НашлиПервуюСтроку Тогда + СообщениеОшибки = КонтекстЯдра.СтрШаблон_("Не нашли первую же подстроку <%1>", ПерваяСтрока); + Возврат Ложь; + КонецЕсли; + + СчетчикЧтоИщем = 2; + Для Счетчик = Счетчик + 1 По СтрЧислоСтрок(Строка) Цикл + ОчереднаяСтрока = СокрЛП(СтрПолучитьСтроку(Строка, Счетчик)); + ЧтоИщем = СокрЛП(СтрПолучитьСтроку(Подстрока, СчетчикЧтоИщем)); + Поз = Найти(ОчереднаяСтрока, ЧтоИщем); + Если Поз = 0 Тогда + СообщениеОшибки = КонтекстЯдра.СтрШаблон_("Не нашли подстроку № %1 <%2>", СчетчикЧтоИщем, ЧтоИщем); + Возврат Ложь; + Иначе + СчетчикЧтоИщем = СчетчикЧтоИщем + 1; + Если СчетчикЧтоИщем > СтрЧислоСтрок(Подстрока) Тогда + Возврат Истина; + КонецЕсли; + КонецЕсли; + КонецЦикла; + Возврат СчетчикЧтоИщем > СтрЧислоСтрок(Подстрока); +КонецФункции + // } Helpers + +СтатусыРезультатаТестирования = Новый Структура; +СтатусыРезультатаТестирования.Вставить("ОшибкаПроверки", "Failed"); +СтатусыРезультатаТестирования.Вставить("НеизвестнаяОшибка", "Broken"); +СтатусыРезультатаТестирования.Вставить("ТестПропущен", "Pending"); +СтатусыРезультатаТестирования = Новый ФиксированнаяСтруктура(СтатусыРезультатаТестирования); diff --git a/releaseCheck.md b/releaseCheck.md index 8d8721a70..ed771ba7c 100644 --- a/releaseCheck.md +++ b/releaseCheck.md @@ -1,4 +1,4 @@ -## Требования к выпуску релизов +# Требования к выпуску релизов Перед выпуском релиза нужно выполнить операции по следующему чек-листу: @@ -7,16 +7,18 @@ - Изменить номер версии в методе `Версия()` [модуля обработки](./epf/xddTestRunner/xddTestRunner/Ext/ObjectModule.bsl) `xddTestRunner.epf` - Изменить номер версии в методе `Версия()` [модуля обработки](./Plugins/СериализаторMXL/СериализаторMXL/Ext/ObjectModule.bsl) `Plugins/СериализаторMXL.epf` - Изменить номер версии в метаданных конфигураций для 8.2 и 8.3 из каталога `lib/CF` - * в 2-х местах - версия конфигурация и синоним конфигурации - * `` и `` - * [bdd 83](./lib/CF/83/Configuration.xml) - * [bdd 83 NoSync](./lib/CF/83NoSync/Configuration.xml) - * [xdd 83](./lib/CF/83xdd/Configuration.xml) - * [xdd 83 NoSync](./lib/CF/83xddNoSync/Configuration.xml) -- Выполнить разборку на исходники + * в 2-х местах - версия конфигурация и синоним конфигурации + * `` и `` + * [bdd 83](./lib/CF/83/Configuration.xml) + * [bdd 83 NoSync](./lib/CF/83NoSync/Configuration.xml) + * [xdd 83](./lib/CF/83xdd/Configuration.xml) + * [xdd 83 NoSync](./lib/CF/83xddNoSync/Configuration.xml) +- Выполнить разборку всех файлов на исходники +- Выполнить commit и push для своих изменений - Выполнить все тесты из папки `tests`. Ошибок быть не должно. - Выполнить все фичи из папки `features/libraries`. Ошибок быть не должно. -- Описать все изменения версии в файле history.md +- Дождаться завершения сборки на CI +- Описать все изменения версии в файле [history.md](doc/history.md) - Убедиться, что в задачах/issues на Гитхабе для нового релиза/milestone не осталось невыполненных задач. - Если все-таки есть незавершенные задачи, их нужно перенести из нового релиза/milestone в следующий релиз. - Выполнить коммит с установкой тега нового релиза diff --git a/tests/smoke/readme.md b/tests/smoke/readme.md index 620cebf02..eb524a3f4 100644 --- a/tests/smoke/readme.md +++ b/tests/smoke/readme.md @@ -6,11 +6,14 @@ В настоящий момент поддерживается несколько видов дымовых тестов, реализованных отдельными обработками: -* [Дымовые тесты открытия/закрытия форм объектов метаданных](#Дымовые-тесты-открытиязакрытия-форм-объектов-метаданных) +* [Дымовые тесты открытия/закрытия форм объектов метаданных и изменения метаданных](#Дымовые-тесты-открытиязакрытия-форм-объектов-метаданных-и-изменения-метаданных) * [Дымовое тесты ввода документов на основании](#Дымовое-тестирование-ввода-документов-на-основании) +* [Проверка макетов СКД](#Проверка-макетов-СКД) * [Дымовое тестирование настройки общих модулей и наличия подсистем](#Дымовое-тестирование-настройки-общих-модулей-и-наличия-подсистем) +* [Проверка чтения метаданных обычными пользователями, без полных прав](#Проверка-чтения-метаданных-обычными-пользователями-без-полных-прав) +* [Проверка режима управления блокировкой данных в транзакции по умолчанию](#Проверка-режима-управления-блокировкой-данных-в-транзакции-по-умолчанию) -## Дымовые тесты открытия/закрытия форм объектов метаданных +## Дымовые тесты открытия/закрытия форм объектов метаданных и изменения метаданных ### Варианты запуска @@ -42,6 +45,8 @@ * false или Ложь - открываем в режиме 2, без клиента тестирования * true или Истина или не указан вообще - открываем в режиме 1, с клиентом тестирования +Более подробная настройка дымовых тестов документирована в разделе [Настройка дымовых тестов форм объектов под конкретную конфигурацию](#Настройка-дымовых-тестов-форм-объектов-под-конкретную-конфигурацию) + ### Описание возможностей Данные дымовые тесты проверяют открытие/закрытие различных форм с учетом прав доступа (права "Использование/Просмотр") для пользователей с различными ролями (полные или ограниченные права). @@ -172,8 +177,8 @@ Для справочников, документов и бизнес-процессов поддерживаются следующие типы исключений: * `Списки` - задается массив имен справочников/документов, чьи формы списка (все) нужно исключить из проверки -* `Существующие` - задаеся массив имен справочников/документов, чьи формы элементов/документов нужно исключить из проверки открытием в этой форме существующего объекта -* `Новые` - задается массив имен справочников/документов, чьи формы эдементов/документов нужн оисключить из проверки открытием формы скопированного объекта +* `Существующие` - задается массив имен справочников/документов, чьи формы элементов/документов нужно исключить из проверки открытием в этой форме существующего объекта +* `Новые` - задается массив имен справочников/документов, чьи формы элементов/документов нужно исключить из проверки открытием формы скопированного объекта Для документов дополнительно поддерживается тип исключения для проверки `ПеренестиДату`. @@ -342,13 +347,13 @@ На этапе отладки дымовых тестов их приходится запускать интерактивно в ручном режиме при помощи обработки `xddTestRunner.epf`, прежде всего, чтобы выявить все формы, которые блокируют автоматическое выполнение тестов (открывают модальные окна, являются фиктивными формами, т.е. сами не открываются, а вместо этого открывают формы других объектов и т.п.). -По умолчанию тестовые случаи в дереве тестов выводятся сплошным списоком, а в больших конфигурациях это тысячи строк, и ориентироваться в таком списке крайне проблематично. +По умолчанию тестовые случаи в дереве тестов выводятся сплошным списком, а в больших конфигурациях это тысячи строк, и ориентироваться в таком списке крайне проблематично. Чтобы облегчить работу со списком, можно данные в списке сгруппировать. Поддерживаются следующие способы группировки через параметр `СпособГруппировки`: * `ПоВидуМетаданных` - тестовые случаи объединяются в группы по виду метаданных * `ПоВидуОбъекта` - тестовые случаи объединяются по виду объекта -* `ПоКоличеству` (дополнительно нужно указать свойство `КоличествоВГруппе`) - тестовые случаи объединяются в группы по N штук в каждой, группы именуются по виду метаданных + дипазон порядковых номеров, например "Справочники [1..20]", "Справочники[21..40],..." и т.п. +* `ПоКоличеству` (дополнительно нужно указать свойство `КоличествоВГруппе`) - тестовые случаи объединяются в группы по N штук в каждой, группы именуются по виду метаданных + диапазон порядковых номеров, например "Справочники [1..20]", "Справочники[21..40],..." и т.п. * `НеГруппировать` (это способ по умолчанию) ## Дымовое тестирование ввода документов на основании @@ -360,7 +365,7 @@ Для заполнения списка исключений документов из проверки их необходимо заполнить в модуле документа обработки в процедуре `ПолучитьСписокИсключений_ДокументыПроведенные` и/или `ПолучитьСписокИсключений_ДокументыНеПроведенные` -Дымовое тестирование ввода документов на основании может быть сконфигурировано через файл `smoke.json`, по аналогии с обычными дымовыми тестами. Для этого конфигурационный файл должен содержать объект с ключом `smokeInputBasedOn`, внутри которого задаются исключаемые из тестирования комбиации документов и их оснований ввода следующим образом: +Дымовое тестирование ввода документов на основании может быть сконфигурировано через файл `smoke.json`, по аналогии с обычными дымовыми тестами. Для этого конфигурационный файл должен содержать объект с ключом `smokeInputBasedOn`, внутри которого задаются исключаемые из тестирования комбинации документов и их оснований ввода следующим образом: ```json { @@ -396,11 +401,11 @@ ### Быстрый старт для типовых конфигураций через BDD (bddRunner.epf) -Для быстрого старта необходимо открыть данныю обработку в режиме предприятия и нажать кнопку "Генерация фич", после генерации необходимых feature файлов, предложит выбрать каталог где будут созданны feature файлы в разрезе документов оснований. +Для быстрого старта необходимо открыть данную обработку в режиме предприятия и нажать кнопку "Генерация фич", после генерации необходимых feature файлов, предложит выбрать каталог где будут созданы feature файлы в разрезе документов оснований. Если стоит галочка "Указывать документ основание", то происходит указание номера и даты документа на основании которого будет создаваться документ. -Файлы создаются по имени документа основания, включают все документы которые можно создать на основании документа основания. Документом основания выбирается последний проведенный и не проведенный документ. Этого достаточно для первого старта, в дальнейшем предполагается, что при добавлении новых документов разработчик сам подкорретирует feature файл с необходимым документом. +Файлы создаются по имени документа основания, включают все документы которые можно создать на основании документа основания. Документом основания выбирается последний проведенный и не проведенный документ. Этого достаточно для первого старта, в дальнейшем предполагается, что при добавлении новых документов разработчик сам подкорректирует feature файл с необходимым документом. Предполагается, что перегенерация для типовых конфигураций будет происходить только для репозитория git вы всегда сможете увидеть только добавленные формы в фича файлах, а те которые исправляли сможете вернуть на правильное поведение. @@ -504,3 +509,28 @@ } } ``` + +## Проверка макетов СКД + +Данный набор дымовых тестов проверяет правильность схемы СКД из любых макетов с типом `СхемаКомпоновкиДанных` + +Выполняется синтаксический контроль схемы и запроса СКД. + +## Проверка чтения метаданных обычными пользователями, без полных прав + +Данный набор дымовых тестов проверяет правильность установки прав на метаданные. + +Для справочников, документов и регистров есть хотя бы одна роль на Чтение метаданных, отличная от ролей с администраторскими/полными привилегиями. + +## Проверка режима управления блокировкой данных в транзакции по умолчанию + +Данный набор дымовых тестов проверяет правильность установки "Режим управления блокировкой данных в транзакции по умолчанию" + +Отвечает на вопрос - настройка этого режима всех метаданных соответствует настройке этого режима для всей конфигурации? + +И выдает ошибки в случае расхождений настройки. + +Например, режим всей конфигурации "Управляемый", а режим какой-нибудь константы "Автоматический" +или наоборот - "Автоматический" против "Управляемый". + +Такое несоответствие неверно и может привести к ошибкам при выполнении явных или неявных (системных) транзакций 1С. diff --git "a/tests/smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Ext/ObjectModule.bsl" "b/tests/smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Ext/ObjectModule.bsl" index 2a0b621fb..ac197f397 100644 --- "a/tests/smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Ext/ObjectModule.bsl" +++ "b/tests/smoke/\321\202\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/\320\242\320\265\321\201\321\202\321\213_\320\236\321\202\320\272\321\200\321\213\321\202\320\270\320\265\320\244\320\276\321\200\320\274\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\206\320\270\320\270/Ext/ObjectModule.bsl" @@ -204,7 +204,7 @@ Результат = Новый СписокЗначений; - Результат.Добавить("ирАлгоритмы"); + // Пример Результат.Добавить("ирАлгоритмы"); Возврат Результат; КонецФункции @@ -218,8 +218,7 @@ Результат = Новый СписокЗначений; - Результат.Добавить("ирАлгоритмы"); - //Результат.Добавить("ПростойСправочник"); + // Пример Результат.Добавить("ирАлгоритмы"); Возврат Результат; КонецФункции @@ -233,8 +232,7 @@ Результат = Новый СписокЗначений; - Результат.Добавить("ирАлгоритмы"); - //Результат.Добавить("ПростойСправочник"); + // Пример Результат.Добавить("ирАлгоритмы"); Возврат Результат; КонецФункции @@ -248,7 +246,7 @@ Результат = Новый СписокЗначений; - //Результат.Добавить("Штрафы"); + // Пример Результат.Добавить("Штрафы"); Возврат Результат; КонецФункции @@ -262,7 +260,7 @@ Результат = Новый СписокЗначений; - //Результат.Добавить("Штрафы"); + // Пример Результат.Добавить("Штрафы"); Возврат Результат; КонецФункции @@ -276,7 +274,7 @@ Результат = Новый СписокЗначений; - //Результат.Добавить("Штрафы"); + // Пример Результат.Добавить("Штрафы"); Возврат Результат; КонецФункции @@ -290,7 +288,7 @@ Результат = Новый СписокЗначений; - Результат.Добавить("Штрафы"); + // Пример Результат.Добавить("Штрафы"); Возврат Результат; КонецФункции @@ -304,7 +302,7 @@ Результат = Новый СписокЗначений; - //Результат.Добавить("Цены"); + // Пример Результат.Добавить("Цены"); Возврат Результат; КонецФункции diff --git "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164.xml" "b/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164.xml" deleted file mode 100644 index 88e941794..000000000 --- "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164.xml" +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - c3831ec8-d8d5-4f93-8a22-f9bfae07327f - aad28daf-f05d-42da-9bf6-51e89ff6a46b - - - 57ce6eef-6a19-4072-ac8d-1e182077323a - 884bd83a-385d-4381-a7cd-4b51de43f593 - - - - Тест_КонвертацияТестов_в_версию4 - - - ru - Тест конвертация тестов в версию 4 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Ext/ObjectModule.bsl" "b/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Ext/ObjectModule.bsl" deleted file mode 100644 index ecc956b6c..000000000 --- "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Ext/ObjectModule.bsl" +++ /dev/null @@ -1,417 +0,0 @@ -Перем КонтекстЯдра; -Перем Ожидаем; -Перем ВременныеФайлы; -Перем КомандныйФайл; - -Перем Конвертер; - -// Переменная с путем к обработке в файловой системы -// Используется в случаях, когда обработка запущена из встроенного в конфигурацию браузера тестов, -// т.к. в этом случае в свойстве ИспользуемоеИмяФайла содержится адрес временного хранилища, а не непосредственный путь -Перем ПутьКФайлуПолный Экспорт; - -//{ интерфейс тестирования - -Процедура Инициализация(КонтекстЯдраПараметр) Экспорт - КонтекстЯдра = КонтекстЯдраПараметр; - Ожидаем = КонтекстЯдра.Плагин("УтвержденияBDD"); - ВременныеФайлы = КонтекстЯдра.Плагин("ВременныеФайлы"); - КомандныйФайл = КонтекстЯдра.Плагин("КомандныйФайл"); -КонецПроцедуры - -Процедура ЗаполнитьНаборТестов(НаборТестов) Экспорт - НаборТестов.НачатьГруппу("Проверка преобразования текстов", Ложь); - НаборТестов.Добавить("ТестДолжен_ПолучитьУтилитуКонвертации", , "Получить утилиту конвертации"); - НаборТестов.Добавить("ТестДолжен_ПроверитьЧтоТекстНеМеняетсяЕслиВТекстеНетПолучитьСписокТестов", , "Проверить, что текст не меняется, если в тексте нет ""ПолучитьСписокТестов"""); - - НаборТестов.Добавить("ТестДолжен_ПроверитьПолучениеИмениПараметра_КонтекстЯдраИзОписанияМетода_ПолучитьСписокТестов", , "Получить имя параметра ""Контекст ядра"" из описания метода ""ПолучитьСписокТестов"""); - НаборТестов.Добавить("ТестДолжен_ПроверитьПолучениеТела_КонтекстЯдраИзОписанияМетода_ПолучитьСписокТестов", , "Получить тело из описания метода ""ПолучитьСписокТестов"""); - НаборТестов.Добавить("ТестДолжен_ПроверитьПолучениеИмениГлобальнойПеременнойКонтекстаЯдра", , "Получить имя глобальной переменной контекста ядра"); - НаборТестов.Добавить("ТестДолжен_ПроверитьПолучениеКоллекцииТестов", , "Получить коллекцию тестов"); - - НаборТестов.Добавить("ТестДолжен_ПроверитьКонвертацию", НаборТестов.ПараметрыТеста("БазовыйТест_v3", "БазовыйТест_v3_Результат", Истина, Ложь), "Проверить конвертацию простейшего базового теста"); - НаборТестов.Добавить("ТестДолжен_ПроверитьКонвертацию", НаборТестов.ПараметрыТеста("БазовыйТест_v3_ДваТеста", "БазовыйТест_v3_ДваТеста_Результат", Истина, Ложь), "Проверить конвертацию, когда определено 2 теста"); - НаборТестов.Добавить("ТестДолжен_ПроверитьКонвертацию", НаборТестов.ПараметрыТеста("БазовыйТест_v3_ДваТеста_ИКодВокруг", "БазовыйТест_v3_ДваТеста_ИКодВокруг_Результат", Истина, Ложь), "Проверить конвертацию, когда определено 2 теста и есть код вокруг них"); - - НаборТестов.Добавить("ТестДолжен_ПроверитьКонвертацию", НаборТестов.ПараметрыТеста("БазовыйТест_v3_ЕстьУтверждения", "БазовыйТест_v3_ЕстьУтверждения_Результат", Истина, Ложь), "Проверить конвертацию, когда есть утверждения через юТест.Проверить..."); - НаборТестов.Добавить("ТестДолжен_ПроверитьКонвертацию", НаборТестов.ПараметрыТеста("БазовыйТест_v3_ЕстьУтверждения_УФ", "БазовыйТест_v3_ЕстьУтверждения_УФ_Результат", Ложь, Ложь), "Проверить конвертацию (УФ), когда есть утверждения через юТест.Проверить..."); - - НаборТестов.Добавить("ТестДолжен_ПроверитьКонвертацию", НаборТестов.ПараметрыТеста("БазовыйТест_v3_УФ", "БазовыйТест_v3_УФ_Результат", Ложь, Ложь), "Проверить конвертацию простейшего базового теста (УФ)"); - НаборТестов.Добавить("ТестДолжен_ПроверитьКонвертацию", НаборТестов.ПараметрыТеста("БазовыйТест_v3_УФ_ДвеКавычки", "БазовыйТест_v3_УФ_ДвеКавычки_Результат", Ложь, Истина), "Проверить конвертацию простейшего базового теста (УФ), когда две двойные кавычки (бывают внутри декодированного файла)"); - НаборТестов.Добавить("ТестДолжен_ПроверитьКонвертацию", НаборТестов.ПараметрыТеста("БазовыйТест_v3_УФ_ДваТеста", "БазовыйТест_v3_УФ_ДваТеста_Результат", Ложь, Ложь), "Проверить конвертацию, когда определено 2 теста (УФ)"); - НаборТестов.Добавить("ТестДолжен_ПроверитьКонвертацию", НаборТестов.ПараметрыТеста("БазовыйТест_v3_УФ_ДваТеста_ИКодВокруг", "БазовыйТест_v3_УФ_ДваТеста_ИКодВокруг_Результат", Ложь, Ложь), "Проверить конвертацию, когда определено 2 теста и есть код вокруг них (УФ)"); - - НаборТестов.Добавить("ТестДолжен_ПроверитьКонвертацию", НаборТестов.ПараметрыТеста("РазныйРегистр", "РазныйРегистр_Результат", Истина, Ложь), "Проверить конвертацию, когда используется разный регистр символов"); - - НаборТестов.НачатьГруппу("Преобразование файла с одним тестом ОФ", Истина); - НаборТестов.Добавить("ТестДолжен_ВыполнитьИнициализацию", , "Инициализация"); - НаборТестов.Добавить("ТестДолжен_ПодготовитьВременныйКаталогДляСборкиРазборки", , "Подготовить временный каталог"); - НаборТестов.Добавить("ТестДолжен_ПолучитьФайлТестаИзМакета", НаборТестов.ПараметрыТеста("ФайлСОднимТестом"), "Получить файл теста из макета ""ФайлСОднимТестом"" "); - НаборТестов.Добавить("ТестДолжен_УбедитьсяЧтоФайлТестаСоСтарымAPI", , "Убедиться, что файл теста со старым API"); - НаборТестов.Добавить("ТестДолжен_ПреобразоватьФайл", , "Преобразовать полученный файл"); - НаборТестов.Добавить("ТестДолжен_ПроверитьНаличиеИсходнойКопииФайлаТеста", , "Проверить наличие исходной копии файла теста"); - НаборТестов.Добавить("ТестДолжен_ВыполнитьТестированиеПолученногоТестаСНовымAPI", , "Выполнить тестирование полученного теста"); - НаборТестов.Добавить("ТестДолжен_УдалитьВременныеФайлы", , "Удалить временные файлы"); - - НаборТестов.НачатьГруппу("Преобразование файла с одним тестом УФ", Истина); - НаборТестов.Добавить("ТестДолжен_ВыполнитьИнициализацию", , "Инициализация"); - НаборТестов.Добавить("ТестДолжен_ПодготовитьВременныйКаталогДляСборкиРазборки", , "Подготовить временный каталог"); - НаборТестов.Добавить("ТестДолжен_ПолучитьФайлТестаИзМакета", НаборТестов.ПараметрыТеста("ФайлСОднимТестомУФ"), "Получить файл теста из макета ""ФайлСОднимТестом"" "); - НаборТестов.Добавить("ТестДолжен_УбедитьсяЧтоФайлТестаСоСтарымAPI", , "Убедиться, что файл теста со старым API"); - НаборТестов.Добавить("ТестДолжен_ПреобразоватьФайл", , "Преобразовать полученный файл"); - НаборТестов.Добавить("ТестДолжен_ПроверитьНаличиеИсходнойКопииФайлаТеста", , "Проверить наличие исходной копии файла теста"); - НаборТестов.Добавить("ТестДолжен_ВыполнитьТестированиеПолученногоТестаСНовымAPI", , "Выполнить тестирование полученного теста"); - НаборТестов.Добавить("ТестДолжен_УдалитьВременныеФайлы", , "Удалить временные файлы"); - - НаборТестов.НачатьГруппу("Преобразование файлов из каталога", Истина); - НаборТестов.Добавить("ТестДолжен_ВыполнитьИнициализацию", , "Инициализация"); - НаборТестов.Добавить("ТестДолжен_ПодготовитьВременныйКаталогДляСборкиРазборки", , "Подготовить временный каталог"); - НаборТестов.Добавить("ТестДолжен_ПолучитьФайлТестаИзМакета", НаборТестов.ПараметрыТеста("ФайлСОднимТестом"), "Получить файл теста из макета ""ФайлСОднимТестом"" "); - НаборТестов.Добавить("ТестДолжен_ПолучитьФайлТестаИзМакета", НаборТестов.ПараметрыТеста("ФайлСОднимТестомУФ"), "Получить файл теста из макета ""ФайлСОднимТестомУФ"" "); - НаборТестов.Добавить("ТестДолжен_УбедитьсяЧтоФайлТестаСоСтарымAPI", , "Убедиться, что файлы теста со старым API"); - НаборТестов.Добавить("ТестДолжен_ПреобразоватьФайлыИзВременногоКаталога", НаборТестов.ПараметрыТеста(Ложь), "Преобразовать файлы из каталога"); - НаборТестов.Добавить("ТестДолжен_ПроверитьНаличиеИсходнойКопииФайлаТеста", , "Проверить наличие исходной копии файлов тестов"); - НаборТестов.Добавить("ТестДолжен_ВыполнитьТестированиеПолученногоТестаСНовымAPI", , "Выполнить тестирование полученных тестов"); - НаборТестов.Добавить("ТестДолжен_УдалитьВременныеФайлы", , "Удалить временные файлы"); - - НаборТестов.НачатьГруппу("Преобразование файлов из каталога и подкаталога", Истина); - НаборТестов.Добавить("ТестДолжен_ВыполнитьИнициализацию", , "Инициализация"); - НаборТестов.Добавить("ТестДолжен_ПодготовитьВременныйКаталогДляСборкиРазборки", , "Подготовить временный каталог"); - НаборТестов.Добавить("ТестДолжен_ПодготовитьВременныйПодКаталогДляСборкиРазборки", , "Подготовить временный подкаталог"); - НаборТестов.Добавить("ТестДолжен_ПолучитьФайлТестаИзМакета", НаборТестов.ПараметрыТеста("ФайлСОднимТестом"), "Получить файл теста из макета ""ФайлСОднимТестом"" "); - НаборТестов.Добавить("ТестДолжен_ПолучитьФайлТестаИзМакета", НаборТестов.ПараметрыТеста("ФайлСОднимТестомУФ"), "Получить файл теста из макета ""ФайлСОднимТестомУФ"" "); - НаборТестов.Добавить("ТестДолжен_ПеренестиВторойФайлТестаВПодкаталог", , "Перенести второй файл теста в подкаталог"); - НаборТестов.Добавить("ТестДолжен_УбедитьсяЧтоФайлТестаСоСтарымAPI", , "Убедиться, что файлы теста со старым API"); - НаборТестов.Добавить("ТестДолжен_ПреобразоватьФайлыИзВременногоКаталога", НаборТестов.ПараметрыТеста(Истина), "Преобразовать файлы из каталога рекурсивно"); - НаборТестов.Добавить("ТестДолжен_ПроверитьНаличиеИсходнойКопииФайлаТеста", , "Проверить наличие исходной копии файлов тестов"); - НаборТестов.Добавить("ТестДолжен_ВыполнитьТестированиеПолученногоТестаСНовымAPI", , "Выполнить тестирование полученных тестов"); - НаборТестов.Добавить("ТестДолжен_УдалитьВременныеФайлы", , "Удалить временные файлы"); -КонецПроцедуры - -//} - - -//{ блок юнит-тестов - сами тесты - -Процедура ПередЗапускомТеста() Экспорт - Если КонтекстЯдра <> Неопределено - И КонтекстЯдра.ЭтоВстроеннаяОбработка Тогда - ИдентификаторКонвертераСПрефиксомПодсистемы = ДополнитьИдентификаторПрефиксомПодсистемы("xddTestsConvertIntoRebornFormat", КонтекстЯдра.ИспользуемыйПрефиксПодсистемы); - Конвертер = Обработки[ИдентификаторКонвертераСПрефиксомПодсистемы].Создать(); - Если ПеременнаяСодержитСвойство(Конвертер, "ИспользуемыйПрефиксПодсистемы") Тогда - Конвертер.ИспользуемыйПрефиксПодсистемы = КонтекстЯдра.ИспользуемыйПрефиксПодсистемы; - КонецЕсли; - Иначе - Конвертер = ВнешниеОбработки.Создать(ПутьКонвертера(), Ложь); - КонецЕсли; - СлужебныеПараметрыБраузераТестов = КонтекстЯдра.СлужебныеПараметрыОбработки(); - Если ПеременнаяСодержитСвойство(ЭтотОбъект, "ИспользуемоеИмяФайла") Тогда - СлужебныеПараметрыБраузераТестов.Вставить("ИспользуемоеИмяФайла", ИспользуемоеИмяФайла); - КонецЕсли; - Конвертер.Инициализация(); -КонецПроцедуры - -Процедура ТестДолжен_ВыполнитьИнициализацию() Экспорт - Контекст = Новый Структура; - КонтекстЯдра.СохранитьКонтекст(Контекст); - ДобавитьВКонтекст("НаборФайлов", Новый Массив); -КонецПроцедуры - -Процедура ТестДолжен_УдалитьВременныеФайлы() Экспорт - Конвертер.УдалитьВременныеФайлы(); - Конвертер = Неопределено; - ВременныеФайлы.Удалить(); -КонецПроцедуры - -Процедура ТестДолжен_ПодготовитьВременныйКаталогДляСборкиРазборки() Экспорт - ИмяКаталогаСборки = ВременныеФайлы.СоздатьКаталог_(); - ДобавитьВКонтекст("ИмяКаталогаСборки", ИмяКаталогаСборки); -КонецПроцедуры - -Процедура ТестДолжен_ПодготовитьВременныйПодКаталогДляСборкиРазборки() Экспорт - Контекст = КонтекстЯдра.ПолучитьКонтекст(); - - ВременныйФайл = Новый Файл(ПолучитьИмяВременногоФайла("")); - Подкаталог = Новый Файл(Контекст.ИмяКаталогаСборки+"/"+ВременныйФайл.Имя); - СоздатьКаталог(Подкаталог.ПолноеИмя); - ДобавитьВКонтекст("ИмяПодКаталогаСборки", Подкаталог.ПолноеИмя); -КонецПроцедуры - -Процедура ТестДолжен_ПеренестиВторойФайлТестаВПодкаталог() Экспорт - Контекст = КонтекстЯдра.ПолучитьКонтекст(); - ФайлТеста = Новый Файл(Контекст.НаборФайлов[1]); - - ФайлПодКаталога = Новый Файл(Контекст.ИмяПодКаталогаСборки); - ФайлКонечный = Новый Файл(ФайлПодКаталога.ПолноеИмя+"/"+ФайлТеста.Имя); - - ПереместитьФайл(ФайлТеста.ПолноеИмя, ФайлКонечный.ПолноеИмя); - - Ожидаем.Что(ФайлКонечный.Существует(), "Файл должен быть перенесен, а его нет."+ФайлКонечный.ПолноеИмя).ЭтоИстина(); - Ожидаем.Что(ФайлТеста.Существует(), "Файл-исходный должен быть уничтожен, а он существует."+ФайлТеста.ПолноеИмя).ЭтоЛожь(); - - Контекст.НаборФайлов[1] = ФайлКонечный.ПолноеИмя; - ДобавитьВКонтекст("НаборФайлов", Контекст.НаборФайлов); // иначе в УФ тесты не будут работать -КонецПроцедуры - -Процедура ТестДолжен_ПолучитьФайлТестаИзМакета(ИмяМакета) Экспорт - МакетФайлаТеста = ПолучитьМакет(ИмяМакета); - - Контекст = КонтекстЯдра.ПолучитьКонтекст(); - ВременныйФайл = Новый Файл(ПолучитьИмяВременногоФайла("epf")); - ФайлТеста = Новый Файл(Контекст.ИмяКаталогаСборки+"/"+ВременныйФайл.Имя); - - НаборФайлов = Контекст.НаборФайлов; - НаборФайлов.Добавить(ФайлТеста.ПолноеИмя); - - МакетФайлаТеста.Записать(ФайлТеста.ПолноеИмя); - - КонтекстЯдра.СохранитьКонтекст(Контекст); -КонецПроцедуры - -Процедура ТестДолжен_ПреобразоватьФайл() Экспорт - Контекст = КонтекстЯдра.ПолучитьКонтекст(); - Для Каждого ФайлТеста Из Контекст.НаборФайлов Цикл - ФайлТеста = Новый Файл(ФайлТеста); - РезультатыПреобразования = Конвертер.ПреобразоватьФайл(ФайлТеста, Истина); - - Ожидаем.Что(РезультатыПреобразования.НайденоВнешнихОбработок, "РезультатыПреобразования.НайденоВнешнихОбработок").Равно(1); - Ожидаем.Что(РезультатыПреобразования.НайденоФайловТестов, "РезультатыПреобразования.НайденоФайловТестов").Равно(1); - Ожидаем.Что(РезультатыПреобразования.КонвертированоТестов, "РезультатыПреобразования.КонвертированоТестов").Равно(1); - КонецЦикла; -КонецПроцедуры - -Процедура ТестДолжен_ПроверитьНаличиеИсходнойКопииФайлаТеста() Экспорт - Контекст = КонтекстЯдра.ПолучитьКонтекст(); - Для Каждого ФайлТеста Из Контекст.НаборФайлов Цикл - ФайлТеста = Новый Файл(ФайлТеста); - ФайлКопии = Новый Файл(ФайлТеста.Путь+"/"+ФайлТеста.ИмяБезРасширения +".orig.epf"); - Ожидаем.Что(ФайлКопии.Существует(), "не удалось сделать копию-файла для файла "+ФайлТеста.ПолноеИмя +", ожидали файл копии "+ФайлКопии.ПолноеИмя).ЭтоИстина(); - КонецЦикла; -КонецПроцедуры - -Процедура ТестДолжен_УбедитьсяЧтоФайлТестаСоСтарымAPI() Экспорт - Контекст = КонтекстЯдра.ПолучитьКонтекст(); - ЗагрузчикФайла = КонтекстЯдра.Плагин("ЗагрузчикФайла"); - - Для Каждого ФайлТеста Из Контекст.НаборФайлов Цикл - ФайлТеста = Новый Файл(ФайлТеста); - - ФайлОбработкиСНовымAPI = Новый Файл(ФайлТеста.ПолноеИмя); - Попытка - ДеревоТестов = ЗагрузчикФайла.Загрузить(КонтекстЯдра, ФайлОбработкиСНовымAPI.ПолноеИмя); - Исключение - ТекстОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); - Сообщить(ТекстОшибки); - Если НайтиФайлы(ТекстОшибки, "Старый формат тестов в обработке тестов") = 0 Тогда - ВызватьИсключение ТекстОшибки; - КонецЕсли; - КонецПопытки; - КонецЦикла; - -КонецПроцедуры - -Процедура ТестДолжен_ВыполнитьТестированиеПолученногоТестаСНовымAPI() Экспорт - Контекст = КонтекстЯдра.ПолучитьКонтекст(); - ЗагрузчикФайла = КонтекстЯдра.Плагин("ЗагрузчикФайла"); - Для Каждого ФайлТеста Из Контекст.НаборФайлов Цикл - ФайлТеста = Новый Файл(ФайлТеста); - - ФайлОбработкиСНовымAPI = Новый Файл(ФайлТеста.ПолноеИмя); - ДеревоТестов = ЗагрузчикФайла.Загрузить(КонтекстЯдра, ФайлОбработкиСНовымAPI.ПолноеИмя); - - ТестыОбработкиСНовымAPI = ДеревоТестов.Строки[0]; - - Ожидаем.Что(ТестыОбработкиСНовымAPI.СлучайныйПорядокВыполнения, "ТестыОбработкиСНовымAPI порядок выполнения").ЭтоИстина(); - Ожидаем.Что(ТестыОбработкиСНовымAPI.Строки, "ТестыОбработкиСНовымAPI количество дочерних узлов").ИмеетДлину(1); - - Элемент1 = ТестыОбработкиСНовымAPI.Строки[0]; - Ожидаем.Что(Элемент1.Тип, "Элемент1.Тип").Равно(КонтекстЯдра.ТипыУзловДереваТестов.Элемент); - Ожидаем.Что(Элемент1.Путь, "Элемент1.Путь").Равно(ФайлОбработкиСНовымAPI.ПолноеИмя); - Ожидаем.Что(Элемент1.ИмяМетода, "Элемент1.ИмяМетода").Равно("Тест_ДваПлюсДва"); - - РезультатТестирования = КонтекстЯдра.ВыполнитьТесты(ЗагрузчикФайла, ДеревоТестов); - - Ожидаем.Что(РезультатТестирования.Состояние, "Состояние всех результатов тестирования").Равно(КонтекстЯдра.СостоянияТестов.Пройден); - Ожидаем.Что(РезультатТестирования.КоличествоТестов, "Количество тестов по результатам тестирования").Равно(ДеревоТестов.Строки.Количество()); - КонецЦикла; -КонецПроцедуры - -Процедура ТестДолжен_ПреобразоватьФайлыИзВременногоКаталога(ИскатьВПодкаталогах) Экспорт - Контекст = КонтекстЯдра.ПолучитьКонтекст(); - РезультатыПреобразования = Конвертер.ПреобразоватьКаталог(Контекст.ИмяКаталогаСборки, ИскатьВПодкаталогах); - - Ожидаем.Что(РезультатыПреобразования.НайденоВнешнихОбработок, "РезультатыПреобразования.НайденоВнешнихОбработок").Равно(2); - Ожидаем.Что(РезультатыПреобразования.НайденоФайловТестов, "РезультатыПреобразования.НайденоФайловТестов").Равно(2); - Ожидаем.Что(РезультатыПреобразования.КонвертированоТестов, "РезультатыПреобразования.КонвертированоТестов").Равно(2); -КонецПроцедуры - -Процедура ТестДолжен_ПолучитьУтилитуКонвертации() Экспорт - Ожидаем.Что(Конвертер, "Ожидали конвертер не равен Неопределено, а получили другое").ЭтоНе().Равно(Неопределено); -КонецПроцедуры - -Процедура ТестДолжен_ПроверитьЧтоТекстНеМеняетсяЕслиВТекстеНетПолучитьСписокТестов() Экспорт - ИсходныйТекст = "Какой-то текст"; - - ТекстРезультата = Конвертер.ПреобразоватьТекст(ИсходныйТекст, Истина, Ложь); - Ожидаем.Что(ТекстРезультата, "Ожидали, что текст результата будет равен образцу, а это не так").Равно(""); -КонецПроцедуры - -Процедура ТестДолжен_ПроверитьПолучениеИмениПараметра_КонтекстЯдраИзОписанияМетода_ПолучитьСписокТестов() Экспорт - ИсходныйТекст = ПолучитьМакет("БазовыйТест_v3").ПолучитьТекст(); - - ОписаниеМетода = Конвертер.ПолучитьОписаниеМетода_ПолучитьСписокТестов(ИсходныйТекст); - - Ожидаем.Что(ОписаниеМетода.ИмяПараметра_КонтекстЯдра, "Ожидали, что ОписаниеМетода.ИмяПараметра_КонтекстЯдра равен образцу, а это не так").Равно("ЮнитТестирование1"); - -КонецПроцедуры - -Процедура ТестДолжен_ПроверитьПолучениеТела_КонтекстЯдраИзОписанияМетода_ПолучитьСписокТестов() Экспорт - ИсходныйТекст = ПолучитьМакет("БазовыйТест_v3").ПолучитьТекст(); - - ОписаниеМетода = Конвертер.ПолучитьОписаниеМетода_ПолучитьСписокТестов(ИсходныйТекст); - - Образец = " юТест1 = ЮнитТестирование1; - | ВсеТесты1 = Новый Массив; - | ВсеТесты1.Добавить(""Тест_ДваПлюсДва""); - | Возврат ВсеТесты1;"; - - Ожидаем.Что(ОписаниеМетода.ТелоМетода, "Ожидали, что тело метода равно образцу, а это не так").Равно(Образец); - -КонецПроцедуры - -Процедура ТестДолжен_ПроверитьПолучениеИмениГлобальнойПеременнойКонтекстаЯдра() Экспорт - ИсходныйТекст = ПолучитьМакет("БазовыйТест_v3").ПолучитьТекст(); - - ОписаниеМетода = Конвертер.ПолучитьОписаниеМетода_ПолучитьСписокТестов(ИсходныйТекст); - - ОписаниеГлобальнойПеременнойКонтекстаЯдра = ОписаниеМетода.ОписаниеГлобальнойПеременнойКонтекстаЯдра; - ИмяГлобальнойПеременнойКонтекстаЯдра = ОписаниеГлобальнойПеременнойКонтекстаЯдра.Имя; - - Ожидаем.Что(ИмяГлобальнойПеременнойКонтекстаЯдра, "Ожидали, что ИмяГлобальнойПеременнойКонтекстаЯдра равно образцу, а это не так").Равно("юТест1"); - - ТекстОписания = Сред(ИсходныйТекст, ОписаниеГлобальнойПеременнойКонтекстаЯдра.НачалоОписания, ОписаниеГлобальнойПеременнойКонтекстаЯдра.КонецОписания); - Ожидаем.Что(ОписаниеГлобальнойПеременнойКонтекстаЯдра.НачалоОписания, "Ожидали, что ОписаниеГлобальнойПеременнойКонтекстаЯдра.КонецОписания равно образцу, а это не так").Равно(0); - Ожидаем.Что(ОписаниеГлобальнойПеременнойКонтекстаЯдра.КонецОписания, "Ожидали, что ОписаниеГлобальнойПеременнойКонтекстаЯдра.КонецОписания равно образцу, а это не так").Равно(13); - Ожидаем.Что(ТекстОписания, "Ожидали, что ТекстОписания ГлобальнойПеременнойКонтекстаЯдра равно образцу, а это не так").Равно("Перем юТест1;"); - -КонецПроцедуры - -Процедура ТестДолжен_ПроверитьПолучениеКоллекцииТестов() Экспорт - ИсходныйТекст = ПолучитьМакет("БазовыйТест_v3").ПолучитьТекст(); - - ОписаниеМетода = Конвертер.ПолучитьОписаниеМетода_ПолучитьСписокТестов(ИсходныйТекст); - - КоллекцияТестов = ОписаниеМетода.КоллекцияТестов; - - Ожидаем.Что(КоллекцияТестов.Количество(), "Ожидали, что КоллекцияТестов.Количество() равно образцу, а это не так").Равно(1); - Ожидаем.Что(КоллекцияТестов[0], "Ожидали, что имя добавляемого теста равно образцу, а это не так").Равно("Тест_ДваПлюсДва"); - -КонецПроцедуры - -Процедура ТестДолжен_ПроверитьКонвертацию(ИсходныйМакет, МакетОбразецРезультата, ЭтоОбычнаяФорма, ЕстьДвеДвойныеКавычки) Экспорт - //Конвертер.ВключитьЛог(Истина); - - ИсходныйТекст = ПолучитьМакет(ИсходныйМакет).ПолучитьТекст(); - ОбразецРезультата = ПолучитьМакет(МакетОбразецРезультата).ПолучитьТекст(); - - ТекстРезультата = Конвертер.ПреобразоватьТекст(ИсходныйТекст, ЭтоОбычнаяФорма, ЕстьДвеДвойныеКавычки); - - ПоказатьНепустойЛогКонвертера(); - - СравнитьДлинныеСтроки(ОбразецРезультата, ТекстРезультата); -КонецПроцедуры - -Процедура СравнитьДлинныеСтроки(Образец, Значение) - Для к = 1 По Мин(СтрЧислоСтрок(Значение), СтрЧислоСтрок(Образец)) Цикл - Ожидаем.Что(СтрПолучитьСтроку(Значение, к), "Ожидали, что СтрПолучитьСтроку(текст результата, "+к+") будет равен образцу, а это не так").Равно(СтрПолучитьСтроку(Образец, к)); - КонецЦикла; - Ожидаем.Что(СтрЧислоСтрок(Значение), "Ожидали, что СтрЧислоСтрок(текст результата) будет равен образцу, а это не так").Равно(СтрЧислоСтрок(Образец)); - Ожидаем.Что(Значение, "Ожидали, что текст результата будет равен образцу, а это не так").Равно(Образец); - Ожидаем.Что(СтрДлина(Значение), "Ожидали, что СтрДлина(текст результата) будет равен образцу, а это не так").Равно(СтрДлина(Образец)); -КонецПроцедуры - -Процедура ПоказатьНепустойЛогКонвертера() - Лог = Конвертер.ПолучитьЛог(); - Если Не ПустаяСтрока(Лог) Тогда - Сообщить("Лог <" + Символы.ПС + Лог + Символы.ПС + ">"); - КонецЕсли; -КонецПроцедуры - -Процедура ДобавитьВКонтекст(Ключ, Значение) - Контекст = КонтекстЯдра.ПолучитьКонтекст(); - Контекст.Вставить(Ключ, Значение); - КонтекстЯдра.СохранитьКонтекст(Контекст); -КонецПроцедуры - -Функция КаталогПроекта() - Файл = Новый Файл(КонтекстЯдра.ИспользуемоеИмяФайла); - Возврат Файл.Путь; -КонецФункции - -Функция ПутьКонвертера() - Возврат КаталогПроекта() + "\tools\epf\utils\xddTestsConvertIntoRebornFormat.epf"; -КонецФункции - -//} - -// { Подсистема конфигурации xUnitFor1C - -// Универсальная функция для проверки наличия -// свойств у значения любого типа данных -// Переменные: -// 1. Переменная - переменная любого типа, -// для которой необходимо проверить наличие свойства -// 2. ИмяСвойства - переменная типа "Строка", -// содержащая искомое свойства -// -Функция ПеременнаяСодержитСвойство(Переменная, ИмяСвойства) - // Инициализируем структуру для теста - // с ключом (значение переменной "ИмяСвойства") - // и значением произвольного GUID'а - GUIDПроверка = Новый УникальныйИдентификатор; - СтруктураПроверка = Новый Структура; - СтруктураПроверка.Вставить(ИмяСвойства, GUIDПроверка); - // Заполняем созданную структуру из переданного - // значения переменной - ЗаполнитьЗначенияСвойств(СтруктураПроверка, Переменная); - // Если значение для свойства структуры осталось - // NULL, то искомое свойство не найдено, - // и наоборот. - Если СтруктураПроверка[ИмяСвойства] = GUIDПроверка Тогда - Возврат Ложь; - Иначе - Возврат Истина; - КонецЕсли; -КонецФункции - -Функция ДополнитьИдентификаторПрефиксомПодсистемы(Знач Идентификатор, Знач ИспользуемыйПрефиксПодсистемы) - - Если НЕ ЗначениеЗаполнено(ИспользуемыйПрефиксПодсистемы) Тогда - Возврат Идентификатор; - КонецЕсли; - - ДлинаПрефикса = СтрДлина(ИспользуемыйПрефиксПодсистемы); - Если Лев(Идентификатор, ДлинаПрефикса) = ИспользуемыйПрефиксПодсистемы Тогда - Возврат Идентификатор; - Иначе - Возврат ИспользуемыйПрефиксПодсистемы + Идентификатор; - КонецЕсли; - -КонецФункции - -Функция ПолучитьИдентификаторБезПрефиксаПодсистемы(Знач Идентификатор, Знач ИспользуемыйПрефиксПодсистемы) - - Если НЕ ЗначениеЗаполнено(ИспользуемыйПрефиксПодсистемы) Тогда - Возврат Идентификатор; - КонецЕсли; - - ДлинаПрефикса = СтрДлина(ИспользуемыйПрефиксПодсистемы); - Если Лев(Идентификатор, ДлинаПрефикса) = ИспользуемыйПрефиксПодсистемы Тогда - Возврат Прав(Идентификатор, СтрДлина(Идентификатор) - ДлинаПрефикса); - Иначе - Возврат Идентификатор; - КонецЕсли; - -КонецФункции - -// } Подсистема конфигурации xUnitFor1C \ No newline at end of file diff --git "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/v8unpack.xml" "b/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/v8unpack.xml" deleted file mode 100644 index 29c1ac297..000000000 --- "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/v8unpack.xml" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/v8unpack/Ext/Template.bin" "b/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/v8unpack/Ext/Template.bin" deleted file mode 100644 index 59496ab38..000000000 Binary files "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/v8unpack/Ext/Template.bin" and /dev/null differ diff --git "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3.xml" "b/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3.xml" deleted file mode 100644 index 338d0147a..000000000 --- "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3.xml" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3/Ext/Template.txt" "b/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3/Ext/Template.txt" deleted file mode 100644 index ce897714d..000000000 --- "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3/Ext/Template.txt" +++ /dev/null @@ -1,11 +0,0 @@ -Перем юТест1; - -Функция ПолучитьСписокТестов(ЮнитТестирование1) Экспорт - юТест1 = ЮнитТестирование1; - ВсеТесты1 = Новый Массив; - ВсеТесты1.Добавить("Тест_ДваПлюсДва"); - Возврат ВсеТесты1; -КонецФункции - -Процедура Тест_ДваПлюсДва() Экспорт -КонецПроцедуры diff --git "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\224\320\262\320\260\320\242\320\265\321\201\321\202\320\260.xml" "b/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\224\320\262\320\260\320\242\320\265\321\201\321\202\320\260.xml" deleted file mode 100644 index 39a7c2526..000000000 --- "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\224\320\262\320\260\320\242\320\265\321\201\321\202\320\260.xml" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\224\320\262\320\260\320\242\320\265\321\201\321\202\320\260/Ext/Template.txt" "b/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\224\320\262\320\260\320\242\320\265\321\201\321\202\320\260/Ext/Template.txt" deleted file mode 100644 index 8172a52e8..000000000 --- "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\224\320\262\320\260\320\242\320\265\321\201\321\202\320\260/Ext/Template.txt" +++ /dev/null @@ -1,21 +0,0 @@ -Перем юТест; - -Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт - - юТест = ЮнитТестирование; - - ВсеТесты = Новый Массив; - ВсеТесты.Добавить("Тест_ДваПлюсДва"); - ВсеТесты.Добавить("Тест_ДваПлюсТри"); - - Возврат ВсеТесты; - -КонецФункции - -Процедура Тест_ДваПлюсДва() Экспорт - -КонецПроцедуры - -Процедура Тест_ДваПлюсТри() Экспорт - -КонецПроцедуры diff --git "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\224\320\262\320\260\320\242\320\265\321\201\321\202\320\260_\320\230\320\232\320\276\320\264\320\222\320\276\320\272\321\200\321\203\320\263.xml" "b/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\224\320\262\320\260\320\242\320\265\321\201\321\202\320\260_\320\230\320\232\320\276\320\264\320\222\320\276\320\272\321\200\321\203\320\263.xml" deleted file mode 100644 index 839066e13..000000000 --- "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\224\320\262\320\260\320\242\320\265\321\201\321\202\320\260_\320\230\320\232\320\276\320\264\320\222\320\276\320\272\321\200\321\203\320\263.xml" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\224\320\262\320\260\320\242\320\265\321\201\321\202\320\260_\320\230\320\232\320\276\320\264\320\222\320\276\320\272\321\200\321\203\320\263/Ext/Template.txt" "b/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\224\320\262\320\260\320\242\320\265\321\201\321\202\320\260_\320\230\320\232\320\276\320\264\320\222\320\276\320\272\321\200\321\203\320\263/Ext/Template.txt" deleted file mode 100644 index c5c6c81b4..000000000 --- "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\224\320\262\320\260\320\242\320\265\321\201\321\202\320\260_\320\230\320\232\320\276\320\264\320\222\320\276\320\272\321\200\321\203\320\263/Ext/Template.txt" +++ /dev/null @@ -1,29 +0,0 @@ -Перем Перем1; -Перем юТест; -Перем Перем2; - -Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт - - юТест = ЮнитТестирование; - - ВсеТесты = Новый Массив; - ВсеТесты.Добавить("Тест_ДваПлюсДва"); - ВсеТесты.Добавить("Тест_ДваПлюсТри"); - - Возврат ВсеТесты; - -КонецФункции - -Процедура Публичная() Экспорт -КонецПроцедуры - -Процедура Тест_ДваПлюсДва() Экспорт - -КонецПроцедуры - -Процедура Тест_ДваПлюсТри() Экспорт - -КонецПроцедуры - -Процедура Приватная() -КонецПроцедуры diff --git "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\224\320\262\320\260\320\242\320\265\321\201\321\202\320\260_\320\230\320\232\320\276\320\264\320\222\320\276\320\272\321\200\321\203\320\263_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202.xml" "b/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\224\320\262\320\260\320\242\320\265\321\201\321\202\320\260_\320\230\320\232\320\276\320\264\320\222\320\276\320\272\321\200\321\203\320\263_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202.xml" deleted file mode 100644 index a6b358d4d..000000000 --- "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\224\320\262\320\260\320\242\320\265\321\201\321\202\320\260_\320\230\320\232\320\276\320\264\320\222\320\276\320\272\321\200\321\203\320\263_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202.xml" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\224\320\262\320\260\320\242\320\265\321\201\321\202\320\260_\320\230\320\232\320\276\320\264\320\222\320\276\320\272\321\200\321\203\320\263_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202/Ext/Template.txt" "b/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\224\320\262\320\260\320\242\320\265\321\201\321\202\320\260_\320\230\320\232\320\276\320\264\320\222\320\276\320\272\321\200\321\203\320\263_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202/Ext/Template.txt" deleted file mode 100644 index 9b161c3a4..000000000 --- "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\224\320\262\320\260\320\242\320\265\321\201\321\202\320\260_\320\230\320\232\320\276\320\264\320\222\320\276\320\272\321\200\321\203\320\263_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202/Ext/Template.txt" +++ /dev/null @@ -1,51 +0,0 @@ -Перем Перем1; -Перем КонтекстЯдра; -Перем Ожидаем; -Перем Утверждения; -Перем ГенераторТестовыхДанных; -Перем ЗапросыИзБД; -Перем УтвержденияПроверкаТаблиц; - -Перем Перем2; - -//Перем юТест; -//Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт -// -// юТест = ЮнитТестирование; -// -// ВсеТесты = Новый Массив; -// ВсеТесты.Добавить("Тест_ДваПлюсДва"); -// ВсеТесты.Добавить("Тест_ДваПлюсТри"); -// -// Возврат ВсеТесты; -// -//КонецФункции - -Процедура Инициализация(КонтекстЯдраПараметр) Экспорт - КонтекстЯдра = КонтекстЯдраПараметр; - Ожидаем = КонтекстЯдра.Плагин("УтвержденияBDD"); - Утверждения = КонтекстЯдра.Плагин("БазовыеУтверждения"); - ГенераторТестовыхДанных = КонтекстЯдра.Плагин("СериализаторMXL"); - ЗапросыИзБД = КонтекстЯдра.Плагин("ЗапросыИзБД"); - УтвержденияПроверкаТаблиц = КонтекстЯдра.Плагин("УтвержденияПроверкаТаблиц"); -КонецПроцедуры - -Процедура ЗаполнитьНаборТестов(НаборТестов) Экспорт - НаборТестов.Добавить("Тест_ДваПлюсДва"); - НаборТестов.Добавить("Тест_ДваПлюсТри"); -КонецПроцедуры - -Процедура Публичная() Экспорт -КонецПроцедуры - -Процедура Тест_ДваПлюсДва() Экспорт - -КонецПроцедуры - -Процедура Тест_ДваПлюсТри() Экспорт - -КонецПроцедуры - -Процедура Приватная() -КонецПроцедуры - diff --git "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\224\320\262\320\260\320\242\320\265\321\201\321\202\320\260_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202.xml" "b/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\224\320\262\320\260\320\242\320\265\321\201\321\202\320\260_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202.xml" deleted file mode 100644 index 62a0fb54e..000000000 --- "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\224\320\262\320\260\320\242\320\265\321\201\321\202\320\260_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202.xml" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\224\320\262\320\260\320\242\320\265\321\201\321\202\320\260_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202/Ext/Template.txt" "b/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\224\320\262\320\260\320\242\320\265\321\201\321\202\320\260_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202/Ext/Template.txt" deleted file mode 100644 index 813a8d541..000000000 --- "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\224\320\262\320\260\320\242\320\265\321\201\321\202\320\260_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202/Ext/Template.txt" +++ /dev/null @@ -1,42 +0,0 @@ -Перем КонтекстЯдра; -Перем Ожидаем; -Перем Утверждения; -Перем ГенераторТестовыхДанных; -Перем ЗапросыИзБД; -Перем УтвержденияПроверкаТаблиц; - -//Перем юТест; -//Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт -// -// юТест = ЮнитТестирование; -// -// ВсеТесты = Новый Массив; -// ВсеТесты.Добавить("Тест_ДваПлюсДва"); -// ВсеТесты.Добавить("Тест_ДваПлюсТри"); -// -// Возврат ВсеТесты; -// -//КонецФункции - -Процедура Инициализация(КонтекстЯдраПараметр) Экспорт - КонтекстЯдра = КонтекстЯдраПараметр; - Ожидаем = КонтекстЯдра.Плагин("УтвержденияBDD"); - Утверждения = КонтекстЯдра.Плагин("БазовыеУтверждения"); - ГенераторТестовыхДанных = КонтекстЯдра.Плагин("СериализаторMXL"); - ЗапросыИзБД = КонтекстЯдра.Плагин("ЗапросыИзБД"); - УтвержденияПроверкаТаблиц = КонтекстЯдра.Плагин("УтвержденияПроверкаТаблиц"); -КонецПроцедуры - -Процедура ЗаполнитьНаборТестов(НаборТестов) Экспорт - НаборТестов.Добавить("Тест_ДваПлюсДва"); - НаборТестов.Добавить("Тест_ДваПлюсТри"); -КонецПроцедуры - -Процедура Тест_ДваПлюсДва() Экспорт - -КонецПроцедуры - -Процедура Тест_ДваПлюсТри() Экспорт - -КонецПроцедуры - diff --git "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\225\321\201\321\202\321\214\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217.xml" "b/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\225\321\201\321\202\321\214\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217.xml" deleted file mode 100644 index b6ffdeba5..000000000 --- "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\225\321\201\321\202\321\214\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217.xml" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\225\321\201\321\202\321\214\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Ext/Template.txt" "b/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\225\321\201\321\202\321\214\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Ext/Template.txt" deleted file mode 100644 index 99ab79ee1..000000000 --- "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\225\321\201\321\202\321\214\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Ext/Template.txt" +++ /dev/null @@ -1,18 +0,0 @@ -Перем юТест1; - -Функция ПолучитьСписокТестов(ЮнитТестирование1) Экспорт - юТест1 = ЮнитТестирование1; - ВсеТесты1 = Новый Массив; - ВсеТесты1.Добавить("Тест_ДваПлюсДва"); - Возврат ВсеТесты1; -КонецФункции - -Процедура Тест_ДваПлюсДва() Экспорт - юТест1.ПроверитьРавенство(2+2, 4, "2+2 = 4"); - юТест1.ПроверитьНеРавенство(2+2, 5); - юТест1.СоздатьДанныеПоМакетам(Объект, "Макет"); - Рез = юТест1.ПолучитьКоличествоЭлементовСправочникаПоОтбору("Спр", Новый Структура); - юТест1.ВывестиСообщение("Текст сообщения"); - юТест1.ПроверитьРавенствоТаблиц(Таб1, Таб2, "Текст сообщения"); - юТест1.ПрерватьТест("Текст сообщения"); -КонецПроцедуры diff --git "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\225\321\201\321\202\321\214\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202.xml" "b/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\225\321\201\321\202\321\214\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202.xml" deleted file mode 100644 index a893eeafc..000000000 --- "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\225\321\201\321\202\321\214\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202.xml" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\225\321\201\321\202\321\214\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202/Ext/Template.txt" "b/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\225\321\201\321\202\321\214\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202/Ext/Template.txt" deleted file mode 100644 index 7f78e1816..000000000 --- "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\225\321\201\321\202\321\214\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202/Ext/Template.txt" +++ /dev/null @@ -1,38 +0,0 @@ -Перем КонтекстЯдра; -Перем Ожидаем; -Перем Утверждения; -Перем ГенераторТестовыхДанных; -Перем ЗапросыИзБД; -Перем УтвержденияПроверкаТаблиц; - -//Перем юТест1; -//Функция ПолучитьСписокТестов(ЮнитТестирование1) Экспорт -// юТест1 = ЮнитТестирование1; -// ВсеТесты1 = Новый Массив; -// ВсеТесты1.Добавить("Тест_ДваПлюсДва"); -// Возврат ВсеТесты1; -//КонецФункции - -Процедура Инициализация(КонтекстЯдраПараметр) Экспорт - КонтекстЯдра = КонтекстЯдраПараметр; - Ожидаем = КонтекстЯдра.Плагин("УтвержденияBDD"); - Утверждения = КонтекстЯдра.Плагин("БазовыеУтверждения"); - ГенераторТестовыхДанных = КонтекстЯдра.Плагин("СериализаторMXL"); - ЗапросыИзБД = КонтекстЯдра.Плагин("ЗапросыИзБД"); - УтвержденияПроверкаТаблиц = КонтекстЯдра.Плагин("УтвержденияПроверкаТаблиц"); -КонецПроцедуры - -Процедура ЗаполнитьНаборТестов(НаборТестов) Экспорт - НаборТестов.Добавить("Тест_ДваПлюсДва"); -КонецПроцедуры - -Процедура Тест_ДваПлюсДва() Экспорт - Утверждения.ПроверитьРавенство(2+2, 4, "2+2 = 4"); - Утверждения.ПроверитьНеРавенство(2+2, 5); - ГенераторТестовыхДанных.СоздатьДанныеПоМакетам(Объект, "Макет"); - Рез = ЗапросыИзБД.ПолучитьКоличествоЭлементовСправочникаПоОтбору("Спр", Новый Структура); - КонтекстЯдра.ВывестиСообщение("Текст сообщения"); - УтвержденияПроверкаТаблиц.ПроверитьРавенствоТаблиц(Таб1, Таб2, "Текст сообщения"); - КонтекстЯдра.ВызватьОшибкуПроверки("Текст сообщения"); -КонецПроцедуры - diff --git "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\225\321\201\321\202\321\214\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217_\320\243\320\244.xml" "b/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\225\321\201\321\202\321\214\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217_\320\243\320\244.xml" deleted file mode 100644 index dfad83d23..000000000 --- "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\225\321\201\321\202\321\214\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217_\320\243\320\244.xml" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\225\321\201\321\202\321\214\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217_\320\243\320\244/Ext/Template.txt" "b/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\225\321\201\321\202\321\214\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217_\320\243\320\244/Ext/Template.txt" deleted file mode 100644 index fad949c12..000000000 --- "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\225\321\201\321\202\321\214\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217_\320\243\320\244/Ext/Template.txt" +++ /dev/null @@ -1,21 +0,0 @@ -&НаКлиенте -Перем юТест1; - -&НаКлиенте -Функция ПолучитьСписокТестов(ЮнитТестирование1) Экспорт - юТест1 = ЮнитТестирование1; - ВсеТесты1 = Новый Массив; - ВсеТесты1.Добавить("Тест_ДваПлюсДва"); - Возврат ВсеТесты1; -КонецФункции - -&НаКлиенте -Процедура Тест_ДваПлюсДва() Экспорт - юТест1.ПроверитьРавенство(2+2, 4, "2+2 = 4"); - юТест1.ПроверитьНеРавенство(2+2, 5); - юТест1.СоздатьДанныеПоМакетам(Объект, "Макет"); - Рез = юТест1.ПолучитьКоличествоЭлементовСправочникаПоОтбору("Спр", Новый Структура); - юТест1.ВывестиСообщение("Текст сообщения"); - юТест1.ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям(Таб1, Таб2, "Текст сообщения"); - юТест1.ПрерватьТест("Текст сообщения"); -КонецПроцедуры diff --git "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\225\321\201\321\202\321\214\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217_\320\243\320\244_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202.xml" "b/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\225\321\201\321\202\321\214\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217_\320\243\320\244_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202.xml" deleted file mode 100644 index de5616c2f..000000000 --- "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\225\321\201\321\202\321\214\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217_\320\243\320\244_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202.xml" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\225\321\201\321\202\321\214\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217_\320\243\320\244_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202/Ext/Template.txt" "b/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\225\321\201\321\202\321\214\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217_\320\243\320\244_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202/Ext/Template.txt" deleted file mode 100644 index 7c1dcfe27..000000000 --- "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\225\321\201\321\202\321\214\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217_\320\243\320\244_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202/Ext/Template.txt" +++ /dev/null @@ -1,47 +0,0 @@ -&НаКлиенте -Перем КонтекстЯдра; -&НаКлиенте -Перем Ожидаем; -&НаКлиенте -Перем Утверждения; -&НаКлиенте -Перем ГенераторТестовыхДанных; -&НаКлиенте -Перем ЗапросыИзБД; -&НаКлиенте -Перем УтвержденияПроверкаТаблиц; - -//Перем юТест1; -//Функция ПолучитьСписокТестов(ЮнитТестирование1) Экспорт -// юТест1 = ЮнитТестирование1; -// ВсеТесты1 = Новый Массив; -// ВсеТесты1.Добавить("Тест_ДваПлюсДва"); -// Возврат ВсеТесты1; -//КонецФункции - -&НаКлиенте -Процедура Инициализация(КонтекстЯдраПараметр) Экспорт - КонтекстЯдра = КонтекстЯдраПараметр; - Ожидаем = КонтекстЯдра.Плагин("УтвержденияBDD"); - Утверждения = КонтекстЯдра.Плагин("БазовыеУтверждения"); - ГенераторТестовыхДанных = КонтекстЯдра.Плагин("СериализаторMXL"); - ЗапросыИзБД = КонтекстЯдра.Плагин("ЗапросыИзБД"); - УтвержденияПроверкаТаблиц = КонтекстЯдра.Плагин("УтвержденияПроверкаТаблиц"); -КонецПроцедуры - -&НаКлиенте -Процедура ЗаполнитьНаборТестов(НаборТестов) Экспорт - НаборТестов.Добавить("Тест_ДваПлюсДва"); -КонецПроцедуры - -&НаКлиенте -Процедура Тест_ДваПлюсДва() Экспорт - Утверждения.ПроверитьРавенство(2+2, 4, "2+2 = 4"); - Утверждения.ПроверитьНеРавенство(2+2, 5); - ГенераторТестовыхДанных.СоздатьДанныеПоМакетам(Объект, "Макет"); - Рез = ЗапросыИзБД.ПолучитьКоличествоЭлементовСправочникаПоОтбору("Спр", Новый Структура); - КонтекстЯдра.ВывестиСообщение("Текст сообщения"); - УтвержденияПроверкаТаблиц.ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям(Таб1, Таб2, "Текст сообщения"); - КонтекстЯдра.ВызватьОшибкуПроверки("Текст сообщения"); -КонецПроцедуры - diff --git "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202.xml" "b/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202.xml" deleted file mode 100644 index ab5619858..000000000 --- "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202.xml" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202/Ext/Template.txt" "b/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202/Ext/Template.txt" deleted file mode 100644 index d3847c012..000000000 --- "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202/Ext/Template.txt" +++ /dev/null @@ -1,31 +0,0 @@ -Перем КонтекстЯдра; -Перем Ожидаем; -Перем Утверждения; -Перем ГенераторТестовыхДанных; -Перем ЗапросыИзБД; -Перем УтвержденияПроверкаТаблиц; - -//Перем юТест1; -//Функция ПолучитьСписокТестов(ЮнитТестирование1) Экспорт -// юТест1 = ЮнитТестирование1; -// ВсеТесты1 = Новый Массив; -// ВсеТесты1.Добавить("Тест_ДваПлюсДва"); -// Возврат ВсеТесты1; -//КонецФункции - -Процедура Инициализация(КонтекстЯдраПараметр) Экспорт - КонтекстЯдра = КонтекстЯдраПараметр; - Ожидаем = КонтекстЯдра.Плагин("УтвержденияBDD"); - Утверждения = КонтекстЯдра.Плагин("БазовыеУтверждения"); - ГенераторТестовыхДанных = КонтекстЯдра.Плагин("СериализаторMXL"); - ЗапросыИзБД = КонтекстЯдра.Плагин("ЗапросыИзБД"); - УтвержденияПроверкаТаблиц = КонтекстЯдра.Плагин("УтвержденияПроверкаТаблиц"); -КонецПроцедуры - -Процедура ЗаполнитьНаборТестов(НаборТестов) Экспорт - НаборТестов.Добавить("Тест_ДваПлюсДва"); -КонецПроцедуры - -Процедура Тест_ДваПлюсДва() Экспорт -КонецПроцедуры - diff --git "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\243\320\244.xml" "b/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\243\320\244.xml" deleted file mode 100644 index 827e23aa7..000000000 --- "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\243\320\244.xml" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\243\320\244/Ext/Template.txt" "b/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\243\320\244/Ext/Template.txt" deleted file mode 100644 index c8fa01dd9..000000000 --- "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\243\320\244/Ext/Template.txt" +++ /dev/null @@ -1,14 +0,0 @@ -&НаКлиенте -Перем юТест1; - -&НаКлиенте -Функция ПолучитьСписокТестов(ЮнитТестирование1) Экспорт - юТест1 = ЮнитТестирование1; - ВсеТесты1 = Новый Массив; - ВсеТесты1.Добавить("Тест_ДваПлюсДва"); - Возврат ВсеТесты1; -КонецФункции - -&НаКлиенте -Процедура Тест_ДваПлюсДва() Экспорт -КонецПроцедуры diff --git "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\243\320\244_\320\224\320\262\320\260\320\242\320\265\321\201\321\202\320\260.xml" "b/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\243\320\244_\320\224\320\262\320\260\320\242\320\265\321\201\321\202\320\260.xml" deleted file mode 100644 index 24cd3ba7b..000000000 --- "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\243\320\244_\320\224\320\262\320\260\320\242\320\265\321\201\321\202\320\260.xml" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\243\320\244_\320\224\320\262\320\260\320\242\320\265\321\201\321\202\320\260/Ext/Template.txt" "b/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\243\320\244_\320\224\320\262\320\260\320\242\320\265\321\201\321\202\320\260/Ext/Template.txt" deleted file mode 100644 index 2f7986ffd..000000000 --- "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\243\320\244_\320\224\320\262\320\260\320\242\320\265\321\201\321\202\320\260/Ext/Template.txt" +++ /dev/null @@ -1,25 +0,0 @@ -&НаКлиенте -Перем юТест; - -&НаКлиенте -Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт - - юТест = ЮнитТестирование; - - ВсеТесты = Новый Массив; - ВсеТесты.Добавить("Тест_ДваПлюсДва"); - ВсеТесты.Добавить("Тест_ДваПлюсТри"); - - Возврат ВсеТесты; - -КонецФункции - -&НаКлиенте -Процедура Тест_ДваПлюсДва() Экспорт - -КонецПроцедуры - -&НаКлиенте -Процедура Тест_ДваПлюсТри() Экспорт - -КонецПроцедуры diff --git "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\243\320\244_\320\224\320\262\320\260\320\242\320\265\321\201\321\202\320\260_\320\230\320\232\320\276\320\264\320\222\320\276\320\272\321\200\321\203\320\263.xml" "b/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\243\320\244_\320\224\320\262\320\260\320\242\320\265\321\201\321\202\320\260_\320\230\320\232\320\276\320\264\320\222\320\276\320\272\321\200\321\203\320\263.xml" deleted file mode 100644 index 924d7e004..000000000 --- "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\243\320\244_\320\224\320\262\320\260\320\242\320\265\321\201\321\202\320\260_\320\230\320\232\320\276\320\264\320\222\320\276\320\272\321\200\321\203\320\263.xml" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\243\320\244_\320\224\320\262\320\260\320\242\320\265\321\201\321\202\320\260_\320\230\320\232\320\276\320\264\320\222\320\276\320\272\321\200\321\203\320\263/Ext/Template.txt" "b/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\243\320\244_\320\224\320\262\320\260\320\242\320\265\321\201\321\202\320\260_\320\230\320\232\320\276\320\264\320\222\320\276\320\272\321\200\321\203\320\263/Ext/Template.txt" deleted file mode 100644 index c7587ebaa..000000000 --- "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\243\320\244_\320\224\320\262\320\260\320\242\320\265\321\201\321\202\320\260_\320\230\320\232\320\276\320\264\320\222\320\276\320\272\321\200\321\203\320\263/Ext/Template.txt" +++ /dev/null @@ -1,37 +0,0 @@ -&НаКлиенте -Перем Перем1; -&НаКлиенте -Перем юТест; -&НаКлиенте -Перем Перем2; - -&НаКлиенте -Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт - - юТест = ЮнитТестирование; - - ВсеТесты = Новый Массив; - ВсеТесты.Добавить("Тест_ДваПлюсДва"); - ВсеТесты.Добавить("Тест_ДваПлюсТри"); - - Возврат ВсеТесты; - -КонецФункции - -&НаКлиенте -Процедура Публичная() Экспорт -КонецПроцедуры - -&НаКлиенте -Процедура Тест_ДваПлюсДва() Экспорт - -КонецПроцедуры - -&НаКлиенте -Процедура Тест_ДваПлюсТри() Экспорт - -КонецПроцедуры - -&НаКлиенте -Процедура Приватная() -КонецПроцедуры diff --git "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\243\320\244_\320\224\320\262\320\260\320\242\320\265\321\201\321\202\320\260_\320\230\320\232\320\276\320\264\320\222\320\276\320\272\321\200\321\203\320\263_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202.xml" "b/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\243\320\244_\320\224\320\262\320\260\320\242\320\265\321\201\321\202\320\260_\320\230\320\232\320\276\320\264\320\222\320\276\320\272\321\200\321\203\320\263_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202.xml" deleted file mode 100644 index eabe0c5bf..000000000 --- "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\243\320\244_\320\224\320\262\320\260\320\242\320\265\321\201\321\202\320\260_\320\230\320\232\320\276\320\264\320\222\320\276\320\272\321\200\321\203\320\263_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202.xml" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\243\320\244_\320\224\320\262\320\260\320\242\320\265\321\201\321\202\320\260_\320\230\320\232\320\276\320\264\320\222\320\276\320\272\321\200\321\203\320\263_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202/Ext/Template.txt" "b/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\243\320\244_\320\224\320\262\320\260\320\242\320\265\321\201\321\202\320\260_\320\230\320\232\320\276\320\264\320\222\320\276\320\272\321\200\321\203\320\263_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202/Ext/Template.txt" deleted file mode 100644 index c91190b52..000000000 --- "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\243\320\244_\320\224\320\262\320\260\320\242\320\265\321\201\321\202\320\260_\320\230\320\232\320\276\320\264\320\222\320\276\320\272\321\200\321\203\320\263_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202/Ext/Template.txt" +++ /dev/null @@ -1,68 +0,0 @@ -&НаКлиенте -Перем Перем1; - -&НаКлиенте -Перем КонтекстЯдра; -&НаКлиенте -Перем Ожидаем; -&НаКлиенте -Перем Утверждения; -&НаКлиенте -Перем ГенераторТестовыхДанных; -&НаКлиенте -Перем ЗапросыИзБД; -&НаКлиенте -Перем УтвержденияПроверкаТаблиц; - -&НаКлиенте -Перем Перем2; - -&НаКлиенте - -//Перем юТест; -//Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт -// -// юТест = ЮнитТестирование; -// -// ВсеТесты = Новый Массив; -// ВсеТесты.Добавить("Тест_ДваПлюсДва"); -// ВсеТесты.Добавить("Тест_ДваПлюсТри"); -// -// Возврат ВсеТесты; -// -//КонецФункции - -&НаКлиенте -Процедура Инициализация(КонтекстЯдраПараметр) Экспорт - КонтекстЯдра = КонтекстЯдраПараметр; - Ожидаем = КонтекстЯдра.Плагин("УтвержденияBDD"); - Утверждения = КонтекстЯдра.Плагин("БазовыеУтверждения"); - ГенераторТестовыхДанных = КонтекстЯдра.Плагин("СериализаторMXL"); - ЗапросыИзБД = КонтекстЯдра.Плагин("ЗапросыИзБД"); - УтвержденияПроверкаТаблиц = КонтекстЯдра.Плагин("УтвержденияПроверкаТаблиц"); -КонецПроцедуры - -&НаКлиенте -Процедура ЗаполнитьНаборТестов(НаборТестов) Экспорт - НаборТестов.Добавить("Тест_ДваПлюсДва"); - НаборТестов.Добавить("Тест_ДваПлюсТри"); -КонецПроцедуры - -&НаКлиенте -Процедура Публичная() Экспорт -КонецПроцедуры - -&НаКлиенте -Процедура Тест_ДваПлюсДва() Экспорт - -КонецПроцедуры - -&НаКлиенте -Процедура Тест_ДваПлюсТри() Экспорт - -КонецПроцедуры - -&НаКлиенте -Процедура Приватная() -КонецПроцедуры - diff --git "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\243\320\244_\320\224\320\262\320\260\320\242\320\265\321\201\321\202\320\260_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202.xml" "b/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\243\320\244_\320\224\320\262\320\260\320\242\320\265\321\201\321\202\320\260_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202.xml" deleted file mode 100644 index fb473dbac..000000000 --- "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\243\320\244_\320\224\320\262\320\260\320\242\320\265\321\201\321\202\320\260_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202.xml" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\243\320\244_\320\224\320\262\320\260\320\242\320\265\321\201\321\202\320\260_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202/Ext/Template.txt" "b/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\243\320\244_\320\224\320\262\320\260\320\242\320\265\321\201\321\202\320\260_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202/Ext/Template.txt" deleted file mode 100644 index 4b8ad768a..000000000 --- "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\243\320\244_\320\224\320\262\320\260\320\242\320\265\321\201\321\202\320\260_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202/Ext/Template.txt" +++ /dev/null @@ -1,52 +0,0 @@ -&НаКлиенте -Перем КонтекстЯдра; -&НаКлиенте -Перем Ожидаем; -&НаКлиенте -Перем Утверждения; -&НаКлиенте -Перем ГенераторТестовыхДанных; -&НаКлиенте -Перем ЗапросыИзБД; -&НаКлиенте -Перем УтвержденияПроверкаТаблиц; - -//Перем юТест; -//Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт -// -// юТест = ЮнитТестирование; -// -// ВсеТесты = Новый Массив; -// ВсеТесты.Добавить("Тест_ДваПлюсДва"); -// ВсеТесты.Добавить("Тест_ДваПлюсТри"); -// -// Возврат ВсеТесты; -// -//КонецФункции - -&НаКлиенте -Процедура Инициализация(КонтекстЯдраПараметр) Экспорт - КонтекстЯдра = КонтекстЯдраПараметр; - Ожидаем = КонтекстЯдра.Плагин("УтвержденияBDD"); - Утверждения = КонтекстЯдра.Плагин("БазовыеУтверждения"); - ГенераторТестовыхДанных = КонтекстЯдра.Плагин("СериализаторMXL"); - ЗапросыИзБД = КонтекстЯдра.Плагин("ЗапросыИзБД"); - УтвержденияПроверкаТаблиц = КонтекстЯдра.Плагин("УтвержденияПроверкаТаблиц"); -КонецПроцедуры - -&НаКлиенте -Процедура ЗаполнитьНаборТестов(НаборТестов) Экспорт - НаборТестов.Добавить("Тест_ДваПлюсДва"); - НаборТестов.Добавить("Тест_ДваПлюсТри"); -КонецПроцедуры - -&НаКлиенте -Процедура Тест_ДваПлюсДва() Экспорт - -КонецПроцедуры - -&НаКлиенте -Процедура Тест_ДваПлюсТри() Экспорт - -КонецПроцедуры - diff --git "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\243\320\244_\320\224\320\262\320\265\320\232\320\260\320\262\321\213\321\207\320\272\320\270.xml" "b/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\243\320\244_\320\224\320\262\320\265\320\232\320\260\320\262\321\213\321\207\320\272\320\270.xml" deleted file mode 100644 index 619e827b5..000000000 --- "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\243\320\244_\320\224\320\262\320\265\320\232\320\260\320\262\321\213\321\207\320\272\320\270.xml" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\243\320\244_\320\224\320\262\320\265\320\232\320\260\320\262\321\213\321\207\320\272\320\270/Ext/Template.txt" "b/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\243\320\244_\320\224\320\262\320\265\320\232\320\260\320\262\321\213\321\207\320\272\320\270/Ext/Template.txt" deleted file mode 100644 index 7d7061437..000000000 --- "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\243\320\244_\320\224\320\262\320\265\320\232\320\260\320\262\321\213\321\207\320\272\320\270/Ext/Template.txt" +++ /dev/null @@ -1,14 +0,0 @@ -&НаКлиенте -Перем юТест1; - -&НаКлиенте -Функция ПолучитьСписокТестов(ЮнитТестирование1) Экспорт - юТест1 = ЮнитТестирование1; - ВсеТесты1 = Новый Массив; - ВсеТесты1.Добавить(""Тест_ДваПлюсДва""); - Возврат ВсеТесты1; -КонецФункции - -&НаКлиенте -Процедура Тест_ДваПлюсДва() Экспорт -КонецПроцедуры diff --git "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\243\320\244_\320\224\320\262\320\265\320\232\320\260\320\262\321\213\321\207\320\272\320\270_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202.xml" "b/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\243\320\244_\320\224\320\262\320\265\320\232\320\260\320\262\321\213\321\207\320\272\320\270_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202.xml" deleted file mode 100644 index 97b183e55..000000000 --- "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\243\320\244_\320\224\320\262\320\265\320\232\320\260\320\262\321\213\321\207\320\272\320\270_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202.xml" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\243\320\244_\320\224\320\262\320\265\320\232\320\260\320\262\321\213\321\207\320\272\320\270_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202/Ext/Template.txt" "b/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\243\320\244_\320\224\320\262\320\265\320\232\320\260\320\262\321\213\321\207\320\272\320\270_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202/Ext/Template.txt" deleted file mode 100644 index f39bcb00b..000000000 --- "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\243\320\244_\320\224\320\262\320\265\320\232\320\260\320\262\321\213\321\207\320\272\320\270_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202/Ext/Template.txt" +++ /dev/null @@ -1,40 +0,0 @@ -&НаКлиенте -Перем КонтекстЯдра; -&НаКлиенте -Перем Ожидаем; -&НаКлиенте -Перем Утверждения; -&НаКлиенте -Перем ГенераторТестовыхДанных; -&НаКлиенте -Перем ЗапросыИзБД; -&НаКлиенте -Перем УтвержденияПроверкаТаблиц; - -//Перем юТест1; -//Функция ПолучитьСписокТестов(ЮнитТестирование1) Экспорт -// юТест1 = ЮнитТестирование1; -// ВсеТесты1 = Новый Массив; -// ВсеТесты1.Добавить(""Тест_ДваПлюсДва""); -// Возврат ВсеТесты1; -//КонецФункции - -&НаКлиенте -Процедура Инициализация(КонтекстЯдраПараметр) Экспорт - КонтекстЯдра = КонтекстЯдраПараметр; - Ожидаем = КонтекстЯдра.Плагин(""УтвержденияBDD""); - Утверждения = КонтекстЯдра.Плагин(""БазовыеУтверждения""); - ГенераторТестовыхДанных = КонтекстЯдра.Плагин(""СериализаторMXL""); - ЗапросыИзБД = КонтекстЯдра.Плагин(""ЗапросыИзБД""); - УтвержденияПроверкаТаблиц = КонтекстЯдра.Плагин(""УтвержденияПроверкаТаблиц""); -КонецПроцедуры - -&НаКлиенте -Процедура ЗаполнитьНаборТестов(НаборТестов) Экспорт - НаборТестов.Добавить(""Тест_ДваПлюсДва""); -КонецПроцедуры - -&НаКлиенте -Процедура Тест_ДваПлюсДва() Экспорт -КонецПроцедуры - diff --git "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\243\320\244_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202.xml" "b/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\243\320\244_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202.xml" deleted file mode 100644 index f1dd1f75a..000000000 --- "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\243\320\244_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202.xml" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\243\320\244_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202/Ext/Template.txt" "b/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\243\320\244_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202/Ext/Template.txt" deleted file mode 100644 index e574944d6..000000000 --- "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\271\320\242\320\265\321\201\321\202_v3_\320\243\320\244_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202/Ext/Template.txt" +++ /dev/null @@ -1,40 +0,0 @@ -&НаКлиенте -Перем КонтекстЯдра; -&НаКлиенте -Перем Ожидаем; -&НаКлиенте -Перем Утверждения; -&НаКлиенте -Перем ГенераторТестовыхДанных; -&НаКлиенте -Перем ЗапросыИзБД; -&НаКлиенте -Перем УтвержденияПроверкаТаблиц; - -//Перем юТест1; -//Функция ПолучитьСписокТестов(ЮнитТестирование1) Экспорт -// юТест1 = ЮнитТестирование1; -// ВсеТесты1 = Новый Массив; -// ВсеТесты1.Добавить("Тест_ДваПлюсДва"); -// Возврат ВсеТесты1; -//КонецФункции - -&НаКлиенте -Процедура Инициализация(КонтекстЯдраПараметр) Экспорт - КонтекстЯдра = КонтекстЯдраПараметр; - Ожидаем = КонтекстЯдра.Плагин("УтвержденияBDD"); - Утверждения = КонтекстЯдра.Плагин("БазовыеУтверждения"); - ГенераторТестовыхДанных = КонтекстЯдра.Плагин("СериализаторMXL"); - ЗапросыИзБД = КонтекстЯдра.Плагин("ЗапросыИзБД"); - УтвержденияПроверкаТаблиц = КонтекстЯдра.Плагин("УтвержденияПроверкаТаблиц"); -КонецПроцедуры - -&НаКлиенте -Процедура ЗаполнитьНаборТестов(НаборТестов) Экспорт - НаборТестов.Добавить("Тест_ДваПлюсДва"); -КонецПроцедуры - -&НаКлиенте -Процедура Тест_ДваПлюсДва() Экспорт -КонецПроцедуры - diff --git "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\240\320\260\320\267\320\275\321\213\320\271\320\240\320\265\320\263\320\270\321\201\321\202\321\200.xml" "b/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\240\320\260\320\267\320\275\321\213\320\271\320\240\320\265\320\263\320\270\321\201\321\202\321\200.xml" deleted file mode 100644 index d120c2b20..000000000 --- "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\240\320\260\320\267\320\275\321\213\320\271\320\240\320\265\320\263\320\270\321\201\321\202\321\200.xml" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\240\320\260\320\267\320\275\321\213\320\271\320\240\320\265\320\263\320\270\321\201\321\202\321\200/Ext/Template.txt" "b/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\240\320\260\320\267\320\275\321\213\320\271\320\240\320\265\320\263\320\270\321\201\321\202\321\200/Ext/Template.txt" deleted file mode 100644 index f4d486161..000000000 --- "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\240\320\260\320\267\320\275\321\213\320\271\320\240\320\265\320\263\320\270\321\201\321\202\321\200/Ext/Template.txt" +++ /dev/null @@ -1,15 +0,0 @@ -Перем ЮТест1; - -Функция ПолучитьСписокТестов(ЮнитТестирование1) Экспорт - ЮТест1 = ЮнитТестирование1; - ВсеТесты1 = Новый Массив; - ВсеТесты1.Добавить("Тест_ДваПлюсДва"); - Возврат ВсеТесты1; -КонецФункции - -Процедура Тест_ДваПлюсДва() Экспорт - юТест1.ПроверитьРавенство(2+2, 4, "2+2 = 4"); - юТест1.ПроверитьНеРавенство(2+2, 5); - юТест1.СоздатьДанныеПоМакетам(Объект, "Макет"); - Рез = юТест1.ПолучитьКоличествоЭлементовСправочникаПоОтбору("Спр", Новый Структура); -КонецПроцедуры diff --git "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\240\320\260\320\267\320\275\321\213\320\271\320\240\320\265\320\263\320\270\321\201\321\202\321\200_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202.xml" "b/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\240\320\260\320\267\320\275\321\213\320\271\320\240\320\265\320\263\320\270\321\201\321\202\321\200_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202.xml" deleted file mode 100644 index 40e32998b..000000000 --- "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\240\320\260\320\267\320\275\321\213\320\271\320\240\320\265\320\263\320\270\321\201\321\202\321\200_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202.xml" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\240\320\260\320\267\320\275\321\213\320\271\320\240\320\265\320\263\320\270\321\201\321\202\321\200_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202/Ext/Template.txt" "b/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\240\320\260\320\267\320\275\321\213\320\271\320\240\320\265\320\263\320\270\321\201\321\202\321\200_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202/Ext/Template.txt" deleted file mode 100644 index 35431e23f..000000000 --- "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\240\320\260\320\267\320\275\321\213\320\271\320\240\320\265\320\263\320\270\321\201\321\202\321\200_\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202/Ext/Template.txt" +++ /dev/null @@ -1,35 +0,0 @@ -Перем КонтекстЯдра; -Перем Ожидаем; -Перем Утверждения; -Перем ГенераторТестовыхДанных; -Перем ЗапросыИзБД; -Перем УтвержденияПроверкаТаблиц; - -//Перем ЮТест1; -//Функция ПолучитьСписокТестов(ЮнитТестирование1) Экспорт -// ЮТест1 = ЮнитТестирование1; -// ВсеТесты1 = Новый Массив; -// ВсеТесты1.Добавить("Тест_ДваПлюсДва"); -// Возврат ВсеТесты1; -//КонецФункции - -Процедура Инициализация(КонтекстЯдраПараметр) Экспорт - КонтекстЯдра = КонтекстЯдраПараметр; - Ожидаем = КонтекстЯдра.Плагин("УтвержденияBDD"); - Утверждения = КонтекстЯдра.Плагин("БазовыеУтверждения"); - ГенераторТестовыхДанных = КонтекстЯдра.Плагин("СериализаторMXL"); - ЗапросыИзБД = КонтекстЯдра.Плагин("ЗапросыИзБД"); - УтвержденияПроверкаТаблиц = КонтекстЯдра.Плагин("УтвержденияПроверкаТаблиц"); -КонецПроцедуры - -Процедура ЗаполнитьНаборТестов(НаборТестов) Экспорт - НаборТестов.Добавить("Тест_ДваПлюсДва"); -КонецПроцедуры - -Процедура Тест_ДваПлюсДва() Экспорт - Утверждения.ПроверитьРавенство(2+2, 4, "2+2 = 4"); - Утверждения.ПроверитьНеРавенство(2+2, 5); - ГенераторТестовыхДанных.СоздатьДанныеПоМакетам(Объект, "Макет"); - Рез = ЗапросыИзБД.ПолучитьКоличествоЭлементовСправочникаПоОтбору("Спр", Новый Структура); -КонецПроцедуры - diff --git "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\244\320\260\320\271\320\273\320\241\320\236\320\264\320\275\320\270\320\274\320\242\320\265\321\201\321\202\320\276\320\274.xml" "b/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\244\320\260\320\271\320\273\320\241\320\236\320\264\320\275\320\270\320\274\320\242\320\265\321\201\321\202\320\276\320\274.xml" deleted file mode 100644 index 79d4961b7..000000000 --- "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\244\320\260\320\271\320\273\320\241\320\236\320\264\320\275\320\270\320\274\320\242\320\265\321\201\321\202\320\276\320\274.xml" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\244\320\260\320\271\320\273\320\241\320\236\320\264\320\275\320\270\320\274\320\242\320\265\321\201\321\202\320\276\320\274/Ext/Template.bin" "b/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\244\320\260\320\271\320\273\320\241\320\236\320\264\320\275\320\270\320\274\320\242\320\265\321\201\321\202\320\276\320\274/Ext/Template.bin" deleted file mode 100644 index d2b5ba51b..000000000 Binary files "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\244\320\260\320\271\320\273\320\241\320\236\320\264\320\275\320\270\320\274\320\242\320\265\321\201\321\202\320\276\320\274/Ext/Template.bin" and /dev/null differ diff --git "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\244\320\260\320\271\320\273\320\241\320\236\320\264\320\275\320\270\320\274\320\242\320\265\321\201\321\202\320\276\320\274\320\243\320\244.xml" "b/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\244\320\260\320\271\320\273\320\241\320\236\320\264\320\275\320\270\320\274\320\242\320\265\321\201\321\202\320\276\320\274\320\243\320\244.xml" deleted file mode 100644 index 5fe2bc35a..000000000 --- "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\244\320\260\320\271\320\273\320\241\320\236\320\264\320\275\320\270\320\274\320\242\320\265\321\201\321\202\320\276\320\274\320\243\320\244.xml" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\244\320\260\320\271\320\273\320\241\320\236\320\264\320\275\320\270\320\274\320\242\320\265\321\201\321\202\320\276\320\274\320\243\320\244/Ext/Template.bin" "b/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\244\320\260\320\271\320\273\320\241\320\236\320\264\320\275\320\270\320\274\320\242\320\265\321\201\321\202\320\276\320\274\320\243\320\244/Ext/Template.bin" deleted file mode 100644 index 8a9a2409a..000000000 Binary files "a/tests/xunit/Utils/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/\320\242\320\265\321\201\321\202_\320\232\320\276\320\275\320\262\320\265\321\200\321\202\320\260\321\206\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262_\320\262_\320\262\320\265\321\200\321\201\320\270\321\2164/Templates/\320\244\320\260\320\271\320\273\320\241\320\236\320\264\320\275\320\270\320\274\320\242\320\265\321\201\321\202\320\276\320\274\320\243\320\244/Ext/Template.bin" and /dev/null differ diff --git a/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat.xml b/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat.xml deleted file mode 100644 index 0201e668d..000000000 --- a/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - c3831ec8-d8d5-4f93-8a22-f9bfae07327f - 6641570f-5fe8-41b8-9fdd-a7d1b233a01c - - - 2bd25281-0454-4bf1-9b52-a17b78c7834f - 0de42236-0e00-4267-adec-f129a632c3d5 - - - - xddTestsConvertIntoRebornFormat - - - ru - Конвертация тестов xUnitFor1C в версию4 из формата версии 3 - - - - ExternalDataProcessor.xddTestsConvertIntoRebornFormat.Form.Форма - ExternalDataProcessor.xddTestsConvertIntoRebornFormat.Form.УправляемаяФорма - - -
    Форма
    -
    УправляемаяФорма
    - - - - - - - -
    -
    -
    \ No newline at end of file diff --git a/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Ext/ObjectModule.bsl b/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Ext/ObjectModule.bsl deleted file mode 100644 index a94c9dd58..000000000 --- a/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Ext/ObjectModule.bsl +++ /dev/null @@ -1,783 +0,0 @@ -//Перем КонтекстЯдра; -Перем Ожидаем; -Перем ВременныеФайлы; -Перем КомандныйФайл; - -Перем Лог; -Перем ЛогВключен; - -Перем RegExp_ПолучитьСписокТестов; -Перем RegExp_КонецФункции_ПолучитьСписокТестов; - -Перем ПолноеИмяБраузераТестов; - -//{ Интерфейс конвертера - -//Функция Инициализация(СлужебныеПараметрыЯдра = Неопределено) Экспорт -Функция Инициализация() Экспорт - - ПолноеИмяБраузераТестов = "" + ЭтотОбъект; - - ВременныеФайлы = СоздатьУтилиту("ВременныеФайлы"); - КомандныйФайл = СоздатьУтилиту("КомандныйФайл"); - Ожидаем = СоздатьУтилиту("УтвержденияBDD"); - - РегулярныеВыражения_Инициализация (RegExp_ПолучитьСписокТестов, "^\s*((?:procedure)|(?:function)|(?:процедура)|(?:функция))\s+(получитьсписоктестов)\s*\(([\wА-яёЁ\d]+)\s*\)\s+экспорт"); - РегулярныеВыражения_Инициализация (RegExp_КонецФункции_ПолучитьСписокТестов, "^\s*конецфункции"); - - ВключитьЛог(Ложь); - Лог = ""; - -КонецФункции - -Функция ПреобразоватьКаталог(КаталогТестов, ИскатьВПодкаталогах = Ложь) Экспорт - Рез = СоздатьСтруктуруРезультатаПреобразования(); - - Файлы = НайтиФайлы(КаталогТестов, "*.epf", ИскатьВПодкаталогах); - Возврат ПреобразоватьФайлы(Файлы, Истина); -КонецФункции - -Функция ПреобразоватьФайлы(НаборФайлов, НужноДелатьКопию = Истина) Экспорт - Рез = СоздатьСтруктуруРезультатаПреобразования(); - - Если НаборФайлов.Количество() = 0 Тогда - Возврат Рез; - КонецЕсли; - Для Каждого Файл Из НаборФайлов Цикл - Попытка - РезультатыПоФайлу = ПреобразоватьФайл(Файл, Истина); - ДобавитьЧислаВНаборИзДругогоНабора(Рез, РезультатыПоФайлу); - Исключение - Сообщить(Файл.ПолноеИмя + " : " + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); - КонецПопытки; - КонецЦикла; - Возврат Рез; -КонецФункции - -Функция ПреобразоватьФайл(ИсходныйФайл, НужноДелатьКопию = Истина) Экспорт - Рез = СоздатьСтруктуруРезультатаПреобразования(); - Рез.НайденоВнешнихОбработок = 1; - - ИмяКаталогаСборки = ПодготовитьВременныйКаталогДляСборкиРазборки(); - - ФайлУтилиты = ПолучитьУтилитуСборкиРазборки(ИмяКаталогаСборки); - МассивОписанийФайловМодулей = РазобратьФайлТестаНаИсходники(ИмяКаталогаСборки, ИсходныйФайл, ФайлУтилиты); - НовыйМассивОписанийФайловМодулей = НайтиФайлыМодуляТестаВИсходниках(МассивОписанийФайловМодулей); - Если НовыйМассивОписанийФайловМодулей.Количество() = 0 Тогда - Возврат Рез; - КонецЕсли; - Рез.НайденоФайловТестов = 1; - - Для Каждого ОписаниеФайлаМодуля Из НовыйМассивОписанийФайловМодулей Цикл - ФайлМодуляТеста = ОписаниеФайлаМодуля.Файл; - ИсходныйТекст = ПолучитьИсходныйТекстМодуляТеста(ФайлМодуляТеста); - ЭтоОбычнаяФорма = ОписаниеФайлаМодуля.БылРазборДополнительногоКонтейнера; - КонечныйТекст = ПреобразоватьТекстМодуляТестаВФормат_v4_reborn(ИсходныйТекст, ЭтоОбычнаяФорма); - ЗаписатьНовыйТекстМодуляТестаВИсходникМодуляФайлТеста(ФайлМодуляТеста, КонечныйТекст); - КонецЦикла; - Если НужноДелатьКопию Тогда - ФайлКопии = СделатьКопиюФайла(ИсходныйФайл); - КонецЕсли; - ПодменитьФайлВерсийВИсходниках(ИмяКаталогаСборки, ИсходныйФайл, ФайлУтилиты); - - СобратьФайлТеста(ИмяКаталогаСборки, ИсходныйФайл, ФайлУтилиты, МассивОписанийФайловМодулей); - Рез.КонвертированоТестов = 1; - - УдалитьВременныеФайлы(); - Возврат Рез; -КонецФункции - -Процедура УдалитьВременныеФайлы() Экспорт - ВременныеФайлы.Удалить(); -КонецПроцедуры - -Процедура ВключитьЛог(НовоеЗначение = Истина) Экспорт - ЛогВключен = НовоеЗначение = Истина; -КонецПроцедуры - -Функция ПолучитьЛог() Экспорт - Возврат Лог; -КонецФункции - -//} - -//{ приватные методы - -Функция СоздатьУтилиту(ИмяУтилиты) - - КонтекстЯдра = ПолучитьКонтекстЯдраНаСервере(); - - Возврат КонтекстЯдра.СоздатьОбъектПлагина(ИмяУтилиты); - -КонецФункции - -Функция ПодготовитьВременныйКаталогДляСборкиРазборки() - ИмяКаталогаСборки = ВременныеФайлы.СоздатьКаталог_(); - Возврат ИмяКаталогаСборки; -КонецФункции - -Функция ПолучитьУтилитуСборкиРазборки(ИмяКаталогаСборки) - МакетУтилиты = ПолучитьМакет("v8unpack"); - - Файл = Новый Файл(ИмяКаталогаСборки+"\v8unpack.exe"); - - МакетУтилиты.Записать(Файл.ПолноеИмя); - Возврат Файл; -КонецФункции - -Функция РазобратьФайлТестаНаИсходники(ИмяКаталогаСборки, ФайлТеста, ФайлУтилиты) - МассивОписанийФайловМодулей = Новый Массив; - - ИмяКаталогаИсходниковФайла = ФайлТеста.ИмяБезРасширения; - - Файл = КомандныйФайл.ОткрытьФайл(ВременныеФайлы.НовоеИмяФайла("bat")); - КомандныйФайл.Добавить("cd /d " + ИмяКаталогаСборки); - КомандныйФайл.Добавить(ФайлУтилиты.ПолноеИмя + " -unpack """ + ФайлТеста.ПолноеИмя + """ " + ИмяКаталогаИсходниковФайла + " > "+ИмяКаталогаИсходниковФайла+".unpack.log"); - КодВозврата = КомандныйФайл.ВыполнитьКоманду(); - Ожидаем.Что(КодВозврата, "КодВозврата первый -unpack").Равно(0); - - Файлы = НайтиФайлы(ИмяКаталогаСборки+"/"+ИмяКаталогаИсходниковФайла, "*.0.data"); - Ожидаем.Что(Файлы.Количество(), "Должны быть файлы, а их нет").Больше(0); - Для Каждого БинарныйФайл Из Файлы Цикл - ИмяФайлаИсходников = БинарныйФайл.Имя + ".txt"; - - Файл = КомандныйФайл.ОткрытьФайл(ВременныеФайлы.НовоеИмяФайла("bat")); - КомандныйФайл.Добавить("cd /d " + БинарныйФайл.Путь); - КомандныйФайл.Добавить(ФайлУтилиты.ПолноеИмя + " -undeflate " + БинарныйФайл.Имя + " " + ИмяФайлаИсходников + " > "+БинарныйФайл.ИмяБезРасширения+".unpack.log"); - КодВозврата = КомандныйФайл.ВыполнитьКоманду(); - Ожидаем.Что(КодВозврата, "КодВозврата -undeflate "+БинарныйФайл.Имя).Равно(0); - - Файл = КомандныйФайл.ОткрытьФайл(ВременныеФайлы.НовоеИмяФайла("bat")); - КомандныйФайл.Добавить("cd /d " + БинарныйФайл.Путь); - КомандныйФайл.Добавить(ФайлУтилиты.ПолноеИмя + " -unpack " + ИмяФайлаИсходников + " " + БинарныйФайл.ИмяБезРасширения + " > "+БинарныйФайл.ИмяБезРасширения+".unpack.log"); - КодВозврата = КомандныйФайл.ВыполнитьКоманду(); - - ОписаниеИсходника = Новый Структура("ИсходныйФайл", БинарныйФайл); - ОписаниеИсходника.Вставить("ФайлДополнительногоКонтейнера", Новый Файл(БинарныйФайл.Путь +"/"+ИмяФайлаИсходников)); - Если КодВозврата = 4294967245 Тогда //UnpackToFolder. This is not V8 file! - ОписаниеИсходника.Вставить("БылРазборДополнительногоКонтейнера", Ложь); - ОписаниеИсходника.Вставить("Файл", Новый Файл(БинарныйФайл.Путь +"/"+ИмяФайлаИсходников)); - МассивОписанийФайловМодулей.Добавить(ОписаниеИсходника); - Продолжить; - ИначеЕсли КодВозврата = 0 Тогда - ОписаниеИсходника.Вставить("БылРазборДополнительногоКонтейнера", Истина); - НужныйФайл = Новый Файл(БинарныйФайл.Путь +"/"+БинарныйФайл.ИмяБезРасширения+"/text.data"); - Если НужныйФайл.Существует() Тогда - ОписаниеИсходника.Вставить("Файл", НужныйФайл); - МассивОписанийФайловМодулей.Добавить(ОписаниеИсходника); - КонецЕсли; - Продолжить; - КонецЕсли; - Ожидаем.Что(КодВозврата, "КодВозврата второй -unpack "+БинарныйФайл.Имя).Равно(0); - КонецЦикла; - Возврат МассивОписанийФайловМодулей; - - //разборка - //@echo off - //v8unpack.exe -unpack ШаблонТестаУФ.epf .\ШаблонТестаУФ - //v8unpack.exe -undeflate .\ШаблонТестаУФ\727eda5f-558c-428b-86d2-3421c52f4c50.0.data .\ШаблонТестаУФ\Module.txt - //v8unpack.exe -unpack .\ШаблонТестаУФ\Module.txt .\ШаблонТестаУФ\Module - - //v8unpack.exe -undeflate .\ШаблонТестаУФ\ba335523-e6ff-4049-91a9-5f97f7ab0a0b.0.data .\ШаблонТестаУФ\UF.txt - //rem v8unpack.exe -unpack .\ШаблонТестаУФ\UF.txt .\ШаблонТеста\UF - - //сборка - //rem @echo off - //v8unpack.exe -pack .\ШаблонТеста\Module .\ШаблонТеста\NewModule.txt - //v8unpack.exe -deflate .\ШаблонТеста\NewModule.txt .\ШаблонТеста\727eda5f-558c-428b-86d2-3421c52f4c50.0.data - //v8unpack.exe -pack .\ШаблонТеста ШаблонТеста2.epf -КонецФункции - -Функция ПолучитьИмяКонтейнераИзФайла(БинарныйФайл) - Возврат БинарныйФайл.Имя + ".txt"; -КонецФункции - -Функция НайтиФайлыМодуляТестаВИсходниках(МассивОписанийФайловМодулей) - НовыйМассивОписанийФайловМодулей = Новый Массив; - Для Каждого ОписаниеИсходника Из МассивОписанийФайловМодулей Цикл - Файл = ОписаниеИсходника.Файл; - Текст = Новый ЧтениеТекста(Файл.ПолноеИмя, КодировкаТекста.UTF8); - Стр = Текст.ПрочитатьСтроку(); - Пока Стр <> Неопределено Цикл - Если РегулярныеВыражения_Проверка(RegExp_ПолучитьСписокТестов, Стр) Тогда - НовыйМассивОписанийФайловМодулей.Добавить(ОписаниеИсходника); - Прервать; - КонецЕсли; - Стр = Текст.ПрочитатьСтроку(); - КонецЦикла; - КонецЦикла; - Возврат НовыйМассивОписанийФайловМодулей;; -КонецФункции - -Функция ПолучитьИсходныйТекстМодуляТеста(ФайлМодуляТеста) - Возврат ПолучитьТекстФайла(ФайлМодуляТеста); -КонецФункции - -Функция ПреобразоватьТекстМодуляТестаВФормат_v4_reborn(ИсходныйТекст, ЭтоОбычнаяФорма) - ЕстьДвеДвойныеКавычки = Не ЭтоОбычнаяФорма; - Возврат ПреобразоватьТекст(ИсходныйТекст, ЭтоОбычнаяФорма, ЕстьДвеДвойныеКавычки); -КонецФункции - -Функция ЗаписатьНовыйТекстМодуляТестаВИсходникМодуляФайлТеста(ФайлМодуляТеста, КонечныйТекст) - ЗаписатьТекстВФайл(ФайлМодуляТеста, КонечныйТекст); -КонецФункции - -Функция СделатьКопиюФайла(ИсходныйФайл) - ФайлКопии = Новый Файл(ИсходныйФайл.Путь+"/"+ИсходныйФайл.ИмяБезРасширения +".orig.epf"); - КопироватьФайл(ИсходныйФайл.ПолноеИмя, ФайлКопии.ПолноеИмя); - Ожидаем.Что(ФайлКопии.Существует(), "не удалось сделать копию-файла для файла "+ИсходныйФайл.ПолноеИмя +", ожидали файл копии "+ФайлКопии.ПолноеИмя).ЭтоИстина(); - Возврат ФайлКопии; -КонецФункции - -Процедура ПодменитьФайлВерсийВИсходниках(ИмяКаталогаСборки, ИсходныйФайл, ФайлУтилиты) - НовыйФайлВерсий = Новый Файл(ВременныеФайлы.НовоеИмяФайла("txt")); - ЗаписатьТекстВФайл(НовыйФайлВерсий, "{1,0}"); - - Файл = КомандныйФайл.ОткрытьФайл(ВременныеФайлы.НовоеИмяФайла("bat")); - КомандныйФайл.Добавить("cd /d " + ИмяКаталогаСборки+"/"+ИсходныйФайл.ИмяБезРасширения); - КомандныйФайл.Добавить(ФайлУтилиты.ПолноеИмя + " -deflate " + НовыйФайлВерсий.ПолноеИмя + " versions.data >> versions.data.pack.log"); - - КодВозврата = КомандныйФайл.ВыполнитьКоманду(); - Ожидаем.Что(КодВозврата, "КодВозврата versions -pack").Равно(0); -КонецПроцедуры - -Функция СобратьФайлТеста(ИмяКаталогаСборки, ФайлТеста, ФайлУтилиты, МассивОписанийФайловМодулей) - УдалитьФайлы(ФайлТеста.ПолноеИмя); - Ожидаем.Что(ФайлТеста.Существует(), "исходный файл теста не удалось удалить "+ФайлТеста.ПолноеИмя).ЭтоЛожь(); - - Файл = КомандныйФайл.ОткрытьФайл(ВременныеФайлы.НовоеИмяФайла("bat")); - КомандныйФайл.Добавить("cd /d " + ИмяКаталогаСборки+"/"+ФайлТеста.ИмяБезРасширения); - Для Каждого ОписаниеИсходника Из МассивОписанийФайловМодулей Цикл - РазобранныйФайл = ОписаниеИсходника.Файл; - ИсходныйФайл = ОписаниеИсходника.ИсходныйФайл; - ФайлДополнительногоКонтейнера = ОписаниеИсходника.ФайлДополнительногоКонтейнера; - Если ОписаниеИсходника.БылРазборДополнительногоКонтейнера Тогда - КомандныйФайл.Добавить(ФайлУтилиты.ПолноеИмя + " -pack " + РазобранныйФайл.Путь + " " + ФайлДополнительногоКонтейнера.Имя + " > "+РазобранныйФайл.Имя +".pack.log"); - КонецЕсли; - - КомандныйФайл.Добавить(ФайлУтилиты.ПолноеИмя + " -deflate " + ФайлДополнительногоКонтейнера.Имя + " " + ИсходныйФайл.Имя + " >> "+РазобранныйФайл.Имя +".pack.log"); - КонецЦикла; - ИмяКаталогаИсходниковФайла = ФайлТеста.ИмяБезРасширения; - - КомандныйФайл.Добавить("cd .."); - КомандныйФайл.Добавить(ФайлУтилиты.ПолноеИмя + " -pack " + ИмяКаталогаИсходниковФайла + " """ + ФайлТеста.ПолноеИмя + """ > "+ИмяКаталогаИсходниковФайла+".pack.log"); - КодВозврата = КомандныйФайл.ВыполнитьКоманду(); - Ожидаем.Что(КодВозврата, "КодВозврата первый -pack").Равно(0); -КонецФункции - -Функция ПреобразоватьТекст(Знач Исходный, ЭтоОбычнаяФорма, ЕстьДвеДвойныеКавычки) Экспорт - - ОписаниеМетодаПолучитьСписокТестов = ПолучитьОписаниеМетода_ПолучитьСписокТестов(Исходный); - Если Не ЗначениеЗаполнено(ОписаниеМетодаПолучитьСписокТестов) Тогда - Возврат ""; - КонецЕсли; - - СтрокаРез = ИсправитьОписаниеТестов(Исходный, ОписаниеМетодаПолучитьСписокТестов, ЭтоОбычнаяФорма, ЕстьДвеДвойныеКавычки); - СтрокаРез = ПодменитьБазовыеУтверждения(СтрокаРез, ОписаниеМетодаПолучитьСписокТестов); - Возврат СтрокаРез; -КонецФункции - -Функция ПолучитьОписаниеМетода_ПолучитьСписокТестов(Знач ИсходныйТекст) Экспорт - ОписаниеМетода = Новый Структура("Начало, Конец, ИмяПараметра_КонтекстЯдра, ТелоМетода, КоллекцияТестов"); - - Группировки = РегулярныеВыражения_Выполнить(RegExp_ПолучитьСписокТестов, ИсходныйТекст); - Если Не ЗначениеЗаполнено(Группировки) Тогда - ДобавитьЛог("Не удалось найти экспортную процедуру ПолучитьСписокТестов с одним параметром."); - Возврат Неопределено; - КонецЕсли; - - Группировка_Процедура = Группировки[0]; - Ожидаем.Что(Группировка_Процедура.ПодВыражения.Количество(), "Ожидаем, что количество найденных элементов при поиске ПолучитьСписокТестов равно образцу, а это не так").Равно(3); - Если Сред(ИсходныйТекст, Группировка_Процедура.Начало, 1) = Символы.ПС Тогда - Начало = Группировка_Процедура.Начало + 1; - КонецЕсли; - Если Сред(ИсходныйТекст, Начало, 1) = Символы.ПС Тогда - Начало = Начало + 1; - КонецЕсли; - ОписаниеМетода.Вставить("Начало", Начало); - ОписаниеМетода.Вставить("ИмяПараметра_КонтекстЯдра", Группировка_Процедура.ПодВыражения[2]); - ДобавитьЛог("ОписаниеМетода.ИмяПараметра_КонтекстЯдра "+ОписаниеМетода.ИмяПараметра_КонтекстЯдра); - - НачалоКодаПроцедуры = Группировка_Процедура.Начало + Группировка_Процедура.Длина + 2; - - Группировки_КонецПроцедуры = РегулярныеВыражения_Выполнить(RegExp_КонецФункции_ПолучитьСписокТестов, Сред(ИсходныйТекст, НачалоКодаПроцедуры)); - Если Не ЗначениеЗаполнено(Группировки_КонецПроцедуры) Тогда - ВызватьИсключение "Не удалось найти конец процедуры для процедуры ПолучитьСписокТестов с одним параметром."; - КонецЕсли; - - ГруппировкаДляКонецПроцедуры = Группировки_КонецПроцедуры[0]; - ТекстМетодаПолучитьСписокТестов = Сред(ИсходныйТекст, НачалоКодаПроцедуры, ГруппировкаДляКонецПроцедуры.Начало - 1); - - ОписаниеМетода.Вставить("Конец", НачалоКодаПроцедуры + ГруппировкаДляКонецПроцедуры.Начало + ГруппировкаДляКонецПроцедуры.Длина + 2); - ОписаниеМетода.Вставить("ТелоМетода", ТекстМетодаПолучитьСписокТестов); - - ДобавитьЛог("ТелоМетода ПолучитьСписокТестов <"+ОписаниеМетода.ТелоМетода+">"); - - ОписаниеГлобальнойПеременнойКонтекстаЯдра = ПолучитьОписаниеГлобальнойПеременнойКонтекстаЯдра(ИсходныйТекст, ОписаниеМетода); - ПодтвердитьИмяГлобальнойПеременнойКонтекстаЯдра(ИсходныйТекст, ОписаниеМетода, ОписаниеГлобальнойПеременнойКонтекстаЯдра); - ОписаниеМетода.Вставить("ОписаниеГлобальнойПеременнойКонтекстаЯдра", ОписаниеГлобальнойПеременнойКонтекстаЯдра); - - КоллекцияТестов = ПолучитьКоллекциюТестов(ИсходныйТекст, ОписаниеМетода); - ОписаниеМетода.Вставить("КоллекцияТестов", КоллекцияТестов); - - Возврат ОписаниеМетода; -КонецФункции - -Функция ПолучитьОписаниеГлобальнойПеременнойКонтекстаЯдра(Знач ИсходныйТекст, ОписаниеМетода) - RegExp_ПрисваиваниеКонтекстаЯдра = Неопределено; - РегулярныеВыражения_Инициализация (RegExp_ПрисваиваниеКонтекстаЯдра, "^\s*([\wА-яёЁ\d]+)\s*=\s*" + ОписаниеМетода.ИмяПараметра_КонтекстЯдра + "\s*;"); - Группировки = РегулярныеВыражения_Выполнить(RegExp_ПрисваиваниеКонтекстаЯдра, ОписаниеМетода.ТелоМетода); - Если Не ЗначениеЗаполнено(Группировки) Тогда - ВызватьИсключение "Не удалось найти присваивание параметра контекста ядра."; - КонецЕсли; - Группировка = Группировки[0]; - - Ожидаем.Что(Группировка.ПодВыражения.Количество(), "Ожидаем, что количество найденных элементов при поиске ИмяГлобальнойПеременнойКонтекстаЯдра равно образцу, а это не так").Равно(1); - - ОписаниеГлобальнойПеременнойКонтекстаЯдра = Новый Структура("Имя, НачалоОписания, КонецОписания"); - - ОписаниеГлобальнойПеременнойКонтекстаЯдра.Вставить("Имя", Группировка.ПодВыражения[0]); - - ДобавитьЛог("предварительно ОписаниеГлобальнойПеременнойКонтекстаЯдра.Имя = " + ОписаниеГлобальнойПеременнойКонтекстаЯдра.Имя); - Возврат ОписаниеГлобальнойПеременнойКонтекстаЯдра; -КонецФункции - -Процедура ПодтвердитьИмяГлобальнойПеременнойКонтекстаЯдра(Знач ИсходныйТекст, ОписаниеМетода, ОписаниеГлобальнойПеременнойКонтекстаЯдра) - RegExp_ОбъявлениеГлобальнойПеременнойКонтекстаЯдра = Неопределено; - РегулярныеВыражения_Инициализация (RegExp_ОбъявлениеГлобальнойПеременнойКонтекстаЯдра, "^\s*Перем\s+(" + ОписаниеГлобальнойПеременнойКонтекстаЯдра.Имя + ")\s*[;,]"); - Группировки = РегулярныеВыражения_Выполнить(RegExp_ОбъявлениеГлобальнойПеременнойКонтекстаЯдра, ИсходныйТекст); - Если Не ЗначениеЗаполнено(Группировки) Тогда - ВызватьИсключение ("Не удалось найти глобальную переменную контекста ядра."); - КонецЕсли; - Группировка = Группировки[0]; - - Ожидаем.Что(Группировка.ПодВыражения.Количество(), "Ожидаем, что количество найденных элементов при проверке ИмяГлобальнойПеременнойКонтекстаЯдра равно образцу, а это не так").Равно(1); - ДобавитьЛог("подтверждено ИмяГлобальнойПеременнойКонтекстаЯдра = "+Группировка.ПодВыражения[0]); - - ОписаниеГлобальнойПеременнойКонтекстаЯдра.Вставить("НачалоОписания", Группировка.Начало); - ОписаниеГлобальнойПеременнойКонтекстаЯдра.Вставить("КонецОписания", Группировка.Начало + Группировка.Длина); -КонецПроцедуры - -Функция ПолучитьКоллекциюТестов(Знач ИсходныйТекст, ОписаниеМетода) - RegExp_ИмяКоллекцииТестов = Неопределено; - //РегулярныеВыражения_Инициализация (RegExp_ИмяКоллекцииТестов, "\s*([\wА-яёЁ\d]+)\s*=\s*Новый\s+Массив\s*[;\(]([.\s].+)+Возврат\s+([\wА-яёЁ\d]+)"); - РегулярныеВыражения_Инициализация (RegExp_ИмяКоллекцииТестов, "^\s*Возврат\s+([\wА-яёЁ\d]+)"); - Группировки = РегулярныеВыражения_Выполнить(RegExp_ИмяКоллекцииТестов, ОписаниеМетода.ТелоМетода); - Если Не ЗначениеЗаполнено(Группировки) Тогда - ВызватьИсключение "Не удалось найти создание коллекции тестов."; - КонецЕсли; - Ожидаем.Что(Группировки[0].ПодВыражения.Количество(), "Ожидаем, что количество найденных элементов при поиске ИмяГлобальнойПеременнойКонтекстаЯдра равно образцу, а это не так").Равно(1); - ИмяПеременнойКоллекцииСпискаТестов = Группировки[0].ПодВыражения[0]; - ДобавитьЛог("ИмяПеременнойКоллекцииСпискаТестов = "+ИмяПеременнойКоллекцииСпискаТестов); - - RegExp_ДобавлениеТеста = Неопределено; - РегулярныеВыражения_Инициализация (RegExp_ДобавлениеТеста, "^\s*" + ИмяПеременнойКоллекцииСпискаТестов + "\s*\.\s*Добавить\(\s*""{1,2}([\wА-яёЁ\d]+)""{1,2}\s*\)\s*;"); - Группировки = РегулярныеВыражения_Выполнить(RegExp_ДобавлениеТеста, ОписаниеМетода.ТелоМетода); - - КоллекцияТестов = Новый Массив; - Если Не ЗначениеЗаполнено(Группировки) Тогда - Возврат КоллекцияТестов; - КонецЕсли; - Ожидаем.Что(Группировки[0].ПодВыражения.Количество(), "Ожидаем, что количество найденных элементов при поиске ИмяГлобальнойПеременнойКонтекстаЯдра равно образцу, а это не так").Равно(1); - - Для Каждого Группировка Из Группировки Цикл - ИмяТеста = Группировка.ПодВыражения[0]; - ДобавитьЛог("добавляем имя теста = "+ИмяТеста); - КоллекцияТестов.Добавить(ИмяТеста); - КонецЦикла; - - Возврат КоллекцияТестов; -КонецФункции - -Функция ИсправитьОписаниеТестов(Знач Исходный, ОписаниеМетодаПолучитьСписокТестов, ЭтоОбычнаяФорма, ЕстьДвеДвойныеКавычки) - Ожидаем.Что(Не ЭтоОбычнаяФорма ИЛИ ЭтоОбычнаяФорма И Не ЕстьДвеДвойныеКавычки, "Ожидаем, что ЕстьДвеДвойныеКавычки только в режиме УФ, а сейчас наоборот").ЭтоИстина(); - - ОписаниеГлобальнойПеременнойКонтекстаЯдра = ОписаниеМетодаПолучитьСписокТестов.ОписаниеГлобальнойПеременнойКонтекстаЯдра; - ИмяГлобальнойПеременнойКонтекстаЯдра = ОписаниеГлобальнойПеременнойКонтекстаЯдра.Имя; - - Макет = ПолучитьМакет("ШаблонТеста"); - - ОбластьПеременныеТестирования = ?(ЭтоОбычнаяФорма, Макет.ПолучитьОбласть("ПеременныеТестирования"), Макет.ПолучитьОбласть("ПеременныеТестирования_УФ")); - ОбластьОписанияТестов = ?(ЭтоОбычнаяФорма, Макет.ПолучитьОбласть("ОписанияТестов"), Макет.ПолучитьОбласть("ОписанияТестов_УФ")); - Если ЕстьДвеДвойныеКавычки Тогда - ОбластьОписанияТестов = Макет.ПолучитьОбласть("ОписанияТестов_УФ_ДвеДвойныеКавычки"); - КонецЕсли; - - ОбластьДобавитьИмяТеста = Макет.ПолучитьОбласть("ДобавитьИмяТеста"); - ОбластьЗавершениеСпискаТестов = Макет.ПолучитьОбласть("ЗавершениеСпискаТестов"); - ОбластьУФ_НаКлиенте = Макет.ПолучитьОбласть("УФ_НаКлиенте"); - - ИтоговыйТекст = Новый ТекстовыйДокумент; - - ТекстДоОписанияГлобальнойПеременнойКонтекстаЯдра = СокрЛП(Лев(Исходный, ОписаниеГлобальнойПеременнойКонтекстаЯдра.НачалоОписания-1)); - СтрЧислоСтрок_ТекстДо = СтрЧислоСтрок(ТекстДоОписанияГлобальнойПеременнойКонтекстаЯдра); - Если СтрЧислоСтрок_ТекстДо > 0 и СтрПолучитьСтроку(ТекстДоОписанияГлобальнойПеременнойКонтекстаЯдра, СтрЧислоСтрок_ТекстДо) = "&НаКлиенте" Тогда - ТекстДо = ""; - Для к = 1 По СтрЧислоСтрок_ТекстДо-1 Цикл - ТекстДо = ТекстДо + СтрПолучитьСтроку(ТекстДоОписанияГлобальнойПеременнойКонтекстаЯдра, к) + Символы.ПС; - КонецЦикла; - ТекстДоОписанияГлобальнойПеременнойКонтекстаЯдра = ТекстДо; - //Если ТекстДоОписанияГлобальнойПеременнойКонтекстаЯдра = "&НаКлиенте" Тогда - // ТекстДоОписанияГлобальнойПеременнойКонтекстаЯдра = ""; - КонецЕсли; - ДобавитьЛог("текст до описания глобальной переменной контекста "+Символы.ПС+ТекстДоОписанияГлобальнойПеременнойКонтекстаЯдра +"=========="+Символы.ПС); - - ДобавитьНепустуюСтрокуКТексту(ИтоговыйТекст, ТекстДоОписанияГлобальнойПеременнойКонтекстаЯдра); - - ИтоговыйТекст.Вывести(ОбластьПеременныеТестирования); - ИтоговыйТекст.ДобавитьСтроку(""); - - ТекстДоМетодаПолучитьСписокТестов = СокрЛП(Сред(Исходный, ОписаниеГлобальнойПеременнойКонтекстаЯдра.КонецОписания + 1, ОписаниеМетодаПолучитьСписокТестов.Начало-1 - ОписаниеГлобальнойПеременнойКонтекстаЯдра.КонецОписания - 1)); - Если ТекстДоМетодаПолучитьСписокТестов = "&НаКлиенте" Тогда - ТекстДоМетодаПолучитьСписокТестов = ""; - КонецЕсли; - ДобавитьЛог("текст до ПолучитьСписокТестов"+Символы.ПС+ТекстДоМетодаПолучитьСписокТестов +"=========="+Символы.ПС); - ДобавитьНепустуюСтрокуКТексту(ИтоговыйТекст, ТекстДоМетодаПолучитьСписокТестов); - Если Не ПустаяСтрока(ТекстДоМетодаПолучитьСписокТестов) Тогда - ИтоговыйТекст.ДобавитьСтроку(""); - КонецЕсли; - - ИтоговыйТекст.ДобавитьСтроку(ДобавитьКомментарии("Перем " + ИмяГлобальнойПеременнойКонтекстаЯдра + ";")); - - ИсходныйТекстВКомментарии = ДобавитьКомментарии(Сред(Исходный, ОписаниеМетодаПолучитьСписокТестов.Начало, ОписаниеМетодаПолучитьСписокТестов.Конец-ОписаниеМетодаПолучитьСписокТестов.Начало - 2)); - - ИтоговыйТекст.ДобавитьСтроку(ИсходныйТекстВКомментарии); - ИтоговыйТекст.ДобавитьСтроку(""); - - ИтоговыйТекст.Вывести(ОбластьОписанияТестов); - - Для Каждого ИмяТеста Из ОписаниеМетодаПолучитьСписокТестов.КоллекцияТестов Цикл - // из-за невозможности управлять длиной строки-параметра при установке параметра не использую параметры макета текстового документа - НужныеКавычки = ?(ЕстьДвеДвойныеКавычки, """"+"""", """"); - ВставляемоеИмяТеста = НужныеКавычки + ИмяТеста + НужныеКавычки; - ДобавляемыйТекст = СтрЗаменить(ОбластьДобавитьИмяТеста.ПолучитьСтроку(2), "%ИмяТеста%", ВставляемоеИмяТеста); - ИтоговыйТекст.ДобавитьСтроку(ДобавляемыйТекст); - КонецЦикла; - ИтоговыйТекст.Вывести(ОбластьЗавершениеСпискаТестов); - - ОсновнойТекст = Сред(Исходный, ОписаниеМетодаПолучитьСписокТестов.Конец); - ИтоговыйТекст.ДобавитьСтроку(ОсновнойТекст); - - ДобавитьЛог("ИтоговыйТекст.ПолучитьТекст() = "+Символы.ПС + ИтоговыйТекст.ПолучитьТекст()+"=========="+Символы.ПС); - - Возврат ИтоговыйТекст.ПолучитьТекст(); -КонецФункции - -Функция ПодменитьБазовыеУтверждения(Знач Исходный, ОписаниеМетодаПолучитьСписокТестов) - НаборОписанийУтвержденийДляЗамены = Новый Структура; - НаборОписанийУтвержденийДляЗамены.Вставить("БазовыеУтверждения", "Утверждения"); - НаборОписанийУтвержденийДляЗамены.Вставить("ГенераторТестовыхДанных", "ГенераторТестовыхДанных"); - НаборОписанийУтвержденийДляЗамены.Вставить("ЗапросыИзБД", "ЗапросыИзБД"); - НаборОписанийУтвержденийДляЗамены.Вставить("УтвержденияПроверкаТаблиц", "УтвержденияПроверкаТаблиц"); - НаборОписанийУтвержденийДляЗамены.Вставить("КонтекстЯдра", "КонтекстЯдра"); - - Для Каждого ОписаниеУтверждения Из НаборОписанийУтвержденийДляЗамены Цикл - НаборБазовыхУтверждений = ПолучитьНаборБазовыхУтверждений(ОписаниеУтверждения.Ключ); - Исходный = ЗаменитьБазовыеУтвержденияИзНабораУтверждений(Исходный, ОписаниеМетодаПолучитьСписокТестов.ОписаниеГлобальнойПеременнойКонтекстаЯдра.Имя, НаборБазовыхУтверждений, ОписаниеУтверждения.Значение); - КонецЦикла; - Возврат Исходный; -КонецФункции - -Функция ПолучитьНаборБазовыхУтверждений(ИмяМакетаУтверждений) - ТекстУтверждений = ПолучитьМакет(ИмяМакетаУтверждений); - НаборБазовыхУтверждений = Новый Структура; - Для к = 1 По ТекстУтверждений.КоличествоСтрок() Цикл - ТекстУтверждения = СокрЛП(ТекстУтверждений.ПолучитьСтроку(к)); - Если ПустаяСтрока(ТекстУтверждения) Тогда - Продолжить; - КонецЕсли; - Описание = ПолучитьОписаниеБазовогоУтверждения(ТекстУтверждения); - НаборБазовыхУтверждений.Вставить(Описание.Исходное, Описание); - КонецЦикла; - Возврат НаборБазовыхУтверждений; -КонецФункции - -Функция ПолучитьОписаниеБазовогоУтверждения(ТекстУтверждения) - Результат = Новый Структура("Исходное, Результирующее, ЕстьЗамена"); - - МассивСтрок = РазложитьСтрокуВМассивПодстрок(ТекстУтверждения, "="); - - Если МассивСтрок.Количество() = 1 Тогда - Результат.Вставить("Исходное", ТекстУтверждения); - Результат.Вставить("Результирующее", ТекстУтверждения); - Результат.Вставить("ЕстьЗамена", Ложь); - ИначеЕсли МассивСтрок.Количество() = 2 Тогда - Результат.Вставить("Исходное", МассивСтрок[0]); - Результат.Вставить("Результирующее", МассивСтрок[1]); - Результат.Вставить("ЕстьЗамена", Истина); - Иначе - ВызватьИсключение "Неверный формат базового утверждения. В макете разрешено либо название утверждения (например, ПроверитьРавенство) либо описание замены (например, ПрерватьТест=КонтекстЯдра.ВызватьОшибкуПроверки)"; - КонецЕсли; - - Возврат Результат; -КонецФункции - -Функция ЗаменитьБазовыеУтвержденияИзНабораУтверждений(Знач Исходный, ОписаниеГлобальнойПеременнойКонтекстаЯдра, НаборБазовыхУтверждений, ИмяНовойПеременнойУтверждений) - - НаборЗамен = Новый Соответствие; - ШаблонУтверждений = "("; - Для Каждого Структура Из НаборБазовыхУтверждений Цикл - ИсходноеУтверждение = Структура.Ключ; - ОписаниеУтверждения = Структура.Значение; - - ШаблонУтверждений = ШаблонУтверждений + "(" + ОписаниеГлобальнойПеременнойКонтекстаЯдра + "\s*\.\s*("+ИсходноеУтверждение+")\s*\()|"; - - Если ОписаниеУтверждения.ЕстьЗамена Тогда - НаборЗамен.Вставить(НРег(ОписаниеГлобальнойПеременнойКонтекстаЯдра + "." + ИсходноеУтверждение + "("), ОписаниеУтверждения.Результирующее + "("); - Иначе - НаборЗамен.Вставить(НРег(ОписаниеГлобальнойПеременнойКонтекстаЯдра + "." + ИсходноеУтверждение + "("), ИмяНовойПеременнойУтверждений + "." + ИсходноеУтверждение + "("); - КонецЕсли; - КонецЦикла; - НаборЗамен = Новый ФиксированноеСоответствие(НаборЗамен); // для точной проверки свойств через НаборЗамен[ТекстУтверждения], а не переустановки значения свойство в Неопределено - - ШаблонУтверждений = Лев(ШаблонУтверждений, СтрДлина(ШаблонУтверждений) - 1); - ШаблонУтверждений = ШаблонУтверждений + ")+"; - ДобавитьЛог(ИмяНовойПеременнойУтверждений + " ШаблонУтверждений " + ШаблонУтверждений); - - RegExp_ШаблонУтверждений = Неопределено; - РегулярныеВыражения_Инициализация (RegExp_ШаблонУтверждений, ШаблонУтверждений); - Группировки = РегулярныеВыражения_Выполнить(RegExp_ШаблонУтверждений, Исходный); - - Если Не ЗначениеЗаполнено(Группировки) Тогда - ДобавитьЛог("Не удалось найти использование утверждений в тексте теста"); - Возврат Исходный; - КонецЕсли; - - //обход в обратном порядке, чтобы не было проблем с индексом по строке в Лев, Сред - Для н = -Группировки.Количество()+1 По 0 Цикл - к = -н; - Группировка = Группировки[к]; - - ТекстУтверждения = Группировка.ПодВыражения[0]; - ДобавитьЛог(ИмяНовойПеременнойУтверждений + " найден текст утверждения имя теста = "+ТекстУтверждения); - ДобавитьЛог(ИмяНовойПеременнойУтверждений + " найден НаборЗамен["+НРег(ТекстУтверждения)+"] = "+НаборЗамен[НРег(ТекстУтверждения)]); - ЛеваяЧасть = Лев(Исходный, Группировка.Начало); - ПраваяЧасть = Сред(Исходный, Группировка.Начало + Группировка.Длина + 1); - - Исходный = ЛеваяЧасть + НаборЗамен[НРег(ТекстУтверждения)] + ПраваяЧасть; - КонецЦикла; - - ДобавитьЛог(ИмяНовойПеременнойУтверждений + " После ЗаменитьБазовыеУтвержденияИзНабораУтверждений ============== "+Символы.ПС + Исходный); - Возврат Исходный; -КонецФункции - -Функция ДобавитьКомментарии(Строка) - Рез = Новый ТекстовыйДокумент; - Для к=1 По СтрЧислоСтрок(Строка) Цикл - Рез.ДобавитьСтроку("//"+СтрПолучитьСтроку(Строка, к)); - КонецЦикла; - Возврат СокрЛП(Рез.ПолучитьТекст()); -КонецФункции - -Процедура ДобавитьНепустуюСтрокуКТексту(Текст, Строка) - Если Не ПустаяСтрока(Строка) Тогда - Текст.ДобавитьСтроку(Строка); - КонецЕсли; -КонецПроцедуры - -Функция ПолучитьТекстФайла(Файл) - Текст = Новый ЧтениеТекста(Файл.ПолноеИмя, КодировкаТекста.UTF8); - Стр = Текст.Прочитать(); - Возврат Стр; -КонецФункции - -Процедура ЗаписатьТекстВФайл(Файл, Строка) - Текст = Новый ЗаписьТекста(Файл.ПолноеИмя, КодировкаТекста.UTF8); - Текст.Записать(Строка); - Текст.Закрыть(); -КонецПроцедуры - -Процедура ДобавитьЛог(Сообщение) - Если ЛогВключен Тогда - Лог = Лог + Сообщение + Символы.ПС; - КонецЕсли; -КонецПроцедуры - -Функция СоздатьСтруктуруРезультатаПреобразования() - Возврат Новый Структура("НайденоВнешнихОбработок,НайденоФайловТестов,КонвертированоТестов",0,0,0); -КонецФункции - -Процедура ДобавитьЧислаВНаборИзДругогоНабора(ИсходныйНабор, ДобавляемыйНабор) - Для Каждого КлючЗначение Из ДобавляемыйНабор Цикл - Ключ = КлючЗначение.Ключ; - ИсходныйНабор.Вставить(Ключ, ИсходныйНабор[Ключ] + КлючЗначение.Значение); - КонецЦикла; -КонецПроцедуры - -// Разбивает строку на несколько строк по разделителю. Разделитель может иметь любую длину. -// Общий модуль СтроковыеФункцииКлиентСервер. -// -// Параметры: -// Строка - Строка - текст с разделителями; -// Разделитель - Строка - разделитель строк текста, минимум 1 символ; -// ПропускатьПустыеСтроки - Булево - признак необходимости включения в результат пустых строк. -// Если параметр не задан, то функция работает в режиме совместимости со своей предыдущей версией: -// - для разделителя-пробела пустые строки не включаются в результат, для остальных разделителей пустые строки -// включаются в результат. -// - если параметр Строка не содержит значащих символов или не содержит ни одного символа (пустая строка), то в -// случае разделителя-пробела результатом функции будет массив, содержащий одно значение "" (пустая строка), а -// при других разделителях результатом функции будет пустой массив. -// -// -// Возвращаемое значение: -// Массив - массив строк. -// -// Примеры: -// РазложитьСтрокуВМассивПодстрок(",один,,два,", ",") - возвратит массив из 5 элементов, три из которых - пустые строки; -// РазложитьСтрокуВМассивПодстрок(",один,,два,", ",", Истина) - возвратит массив из двух элементов; -// РазложитьСтрокуВМассивПодстрок(" один два ", " ") - возвратит массив из двух элементов; -// РазложитьСтрокуВМассивПодстрок("") - возвратит пустой массив; -// РазложитьСтрокуВМассивПодстрок("",,Ложь) - возвратит массив с одним элементом "" (пустой строкой); -// РазложитьСтрокуВМассивПодстрок("", " ") - возвратит массив с одним элементом "" (пустой строкой); -// -Функция РазложитьСтрокуВМассивПодстрок(Знач Строка, Знач Разделитель = ",", Знач ПропускатьПустыеСтроки = Неопределено) - - Результат = Новый Массив; - - // для обеспечения обратной совместимости - Если ПропускатьПустыеСтроки = Неопределено Тогда - ПропускатьПустыеСтроки = ?(Разделитель = " ", Истина, Ложь); - Если ПустаяСтрока(Строка) Тогда - Если Разделитель = " " Тогда - Результат.Добавить(""); - КонецЕсли; - Возврат Результат; - КонецЕсли; - КонецЕсли; - // - - Позиция = Найти(Строка, Разделитель); - Пока Позиция > 0 Цикл - Подстрока = Лев(Строка, Позиция - 1); - Если Не ПропускатьПустыеСтроки Или Не ПустаяСтрока(Подстрока) Тогда - Результат.Добавить(Подстрока); - КонецЕсли; - Строка = Сред(Строка, Позиция + СтрДлина(Разделитель)); - Позиция = Найти(Строка, Разделитель); - КонецЦикла; - - Если Не ПропускатьПустыеСтроки Или Не ПустаяСтрока(Строка) Тогда - Результат.Добавить(Строка); - КонецЕсли; - - Возврат Результат; - -КонецФункции - -//} - -//{ RegExp - -Процедура РегулярныеВыражения_Инициализация (RegExp, Шаблон, ИскатьДоПервогоСовпадения = Ложь, МногоСтрок = Истина, ИгнорироватьРегистр = Истина) Экспорт - - Если RegExp = Неопределено Тогда - RegExp = Новый COMОбъект("VBScript.RegExp"); - КонецЕсли; - - RegExp.MultiLine = МногоСтрок; // истина — текст многострочный, ложь — одна строка - RegExp.Global = Не ИскатьДоПервогоСовпадения; // истина — поиск по всей строке, ложь — до первого совпадения - RegExp.IgnoreCase = ИгнорироватьРегистр; // истина — игнорировать регистр строки при поиске - RegExp.Pattern = Шаблон; // шаблон (регулярное выражение) - -КонецПроцедуры - -Функция РегулярныеВыражения_Проверка(RegExp, ПроверяемыйТекст) - - Возврат RegExp.Test(ПроверяемыйТекст); - -КонецФункции - -Функция РегулярныеВыражения_Выполнить(RegExp, АнализируемыйТекст) Экспорт - - РезультатАнализаСтроки = RegExp.Execute(АнализируемыйТекст); - - Группировки = Новый Массив; - - Для Каждого Выражение Из РезультатАнализаСтроки Цикл - СтруктураВыражение = Новый Структура ("Начало, Длина, Значение, ПодВыражения", Выражение.FirstIndex, Выражение.Length,Выражение.Value); - - МассивПодВыражений = Новый Массив; - Для Каждого ПодВыражение Из Выражение.SubMatches Цикл - МассивПодВыражений.Добавить(ПодВыражение); - КонецЦикла; - СтруктураВыражение.ПодВыражения = МассивПодВыражений; - - Группировки.Добавить (СтруктураВыражение); - - КонецЦикла; - - Возврат Группировки; - -КонецФункции - -Функция РегулярныеВыражения_Заменить(RegExp, АнализируемыйТекст, ЗаменяемыйТекст) Экспорт - - Рез = RegExp.Replace(АнализируемыйТекст, ЗаменяемыйТекст); - Возврат Рез; - -КонецФункции - -//} - -// { Подсистема конфигурации xUnitFor1C - -Функция ПолучитьКорневойКаталогФреймворка(Знач АнализируемыйПутьККаталогу) - - РезультатПоиска = НайтиФайлы(АнализируемыйПутьККаталогу, "xddTestRunner.epf"); - Если РезультатПоиска.Количество() = 0 Тогда - ВышестоящийКаталог = ПолучитьПутьВышестоящегоКаталога(АнализируемыйПутьККаталогу); - Возврат ПолучитьКорневойКаталогФреймворка(ВышестоящийКаталог); - Иначе - Возврат РезультатПоиска.Получить(0).Путь; - КонецЕсли; - -КонецФункции -Функция ПолучитьПутьВышестоящегоКаталога(Знач ТекущийПутьККаталогу) - - МассивРазделителей = Новый Массив; - МассивРазделителей.Добавить("/"); - МассивРазделителей.Добавить("\"); - - ПоследнийСимвол = Прав(ТекущийПутьККаталогу, 1); - Если НЕ МассивРазделителей.Найти(ПоследнийСимвол) = Неопределено Тогда - ДлинаПутьБезПоследнегоРазделителя = СтрДлина(ТекущийПутьККаталогу) - 1; - ТекущийПутьККаталогу = Лев(ТекущийПутьККаталогу, ДлинаПутьБезПоследнегоРазделителя); - КонецЕсли; - - Пока СтрДлина(ТекущийПутьККаталогу) > 0 Цикл - - ПоследнийСимвол = Прав(ТекущийПутьККаталогу, 1); - Если НЕ МассивРазделителей.Найти(ПоследнийСимвол) = Неопределено Тогда - Прервать; - Иначе - ДлинаПутьБезПоследнегоСимвола = СтрДлина(ТекущийПутьККаталогу) - 1; - ТекущийПутьККаталогу = Лев(ТекущийПутьККаталогу, ДлинаПутьБезПоследнегоСимвола); - КонецЕсли; - - КонецЦикла; - - Возврат ТекущийПутьККаталогу; - -КонецФункции - -Функция ПолучитьКонтекстЯдраНаСервере() - - // Получаем доступ к серверному контексту обработки с использованием - // полного имени метаданных браузера тестов. Иначе нет возможности получить - // доступ к серверному контексту ядра, т.к. изначально вызов был выполнен на клиенте. - // При передаче на сервер клиентский контекст теряется. - КонтекстЯдра = Неопределено; - МетаданныеЯдра = Метаданные.НайтиПоПолномуИмени(ПолноеИмяБраузераТестов); - Если НЕ МетаданныеЯдра = Неопределено - И Метаданные.Обработки.Содержит(МетаданныеЯдра) Тогда - ИмяОбработкиКонтекстаЯдра = СтрЗаменить(ПолноеИмяБраузераТестов, "ОбработкаОбъект", "Обработки"); - КонтекстЯдра = Вычислить(ИмяОбработкиКонтекстаЯдра + ".Создать()"); - Иначе - КонтекстЯдра = ВнешниеОбработки.Создать("xddTestRunner", Ложь); - КонецЕсли; - - Возврат КонтекстЯдра; - -КонецФункции - -// } Подсистема конфигурации xUnitFor1C \ No newline at end of file diff --git "a/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260.xml" "b/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260.xml" deleted file mode 100644 index 63f0f1c25..000000000 --- "a/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260.xml" +++ /dev/null @@ -1,22 +0,0 @@ - - -
    - - УправляемаяФорма - - - ru - Управляемая форма - - - - Managed - false - - PersonalComputer - MobileDevice - - - -
    -
    \ No newline at end of file diff --git "a/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" "b/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" deleted file mode 100644 index 51f51ad99..000000000 --- "a/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Forms/\320\243\320\277\321\200\320\260\320\262\320\273\321\217\320\265\320\274\320\260\321\217\320\244\320\276\321\200\320\274\320\260/Ext/Form.xml" +++ /dev/null @@ -1,29 +0,0 @@ - -
    - useIfNecessary - - - - web:DarkCyan - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Конвертация тестов из формата 3.Х в новый формат (4.Х) работает только в режиме обычного приложения. - -Запустите 1С в указанном приложении!</v8:content> - </v8:item> - - - - - - - - - cfg:ExternalDataProcessorObject.xddTestsConvertIntoRebornFormat - - true - - - \ No newline at end of file diff --git "a/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Forms/\320\244\320\276\321\200\320\274\320\260.xml" "b/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Forms/\320\244\320\276\321\200\320\274\320\260.xml" deleted file mode 100644 index 4d97b9715..000000000 --- "a/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Forms/\320\244\320\276\321\200\320\274\320\260.xml" +++ /dev/null @@ -1,22 +0,0 @@ - - -
    - - Форма - - - ru - Форма - - - - Ordinary - false - - PersonalComputer - MobileDevice - - - -
    -
    \ No newline at end of file diff --git "a/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.bin" "b/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.bin" deleted file mode 100644 index 4e492fb16..000000000 Binary files "a/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form.bin" and /dev/null differ diff --git "a/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" deleted file mode 100644 index 645fc08dc..000000000 --- "a/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ /dev/null @@ -1,71 +0,0 @@ - -Процедура ПриОткрытии() - ИскатьВПодкаталогах = Истина; -КонецПроцедуры - -Процедура КнопкаКонвертироватьНажатие(Кнопка) - Инициализация(); - ВключитьЛог(ПодробныйЛог); - - Если ЭлементыФормы.Панель1.ТекущаяСтраница = ЭлементыФормы.Панель1.Страницы.Каталог Тогда - РезультатыПреобразования = ПреобразоватьКаталог(Каталог, ИскатьВПодкаталогах); - Иначе - НаборФайлов = Новый Массив; - Для к = 1 По СтрЧислоСтрок(Файлы) Цикл - НаборФайлов.Добавить(Новый Файл(СтрПолучитьСтроку(Файлы, 1))); - КонецЦикла; - РезультатыПреобразования = ПреобразоватьФайлы(НаборФайлов); - КонецЕсли; - ПоказатьСтатистику(РезультатыПреобразования); -КонецПроцедуры - -Процедура ПоказатьСтатистику(РезультатыПреобразования) - Сообщить("Найдено внешних обработок - "+РезультатыПреобразования.НайденоВнешнихОбработок+" шт."); - Сообщить("Найдено файлов-тестов в старом формате - "+РезультатыПреобразования.НайденоФайловТестов+" шт."); - Сообщить("Конвертировано в новый формат тестов - "+РезультатыПреобразования.КонвертированоТестов+" шт."); -КонецПроцедуры - -Процедура КаталогНачалоВыбора(Элемент, СтандартнаяОбработка) - НовыйКаталог = ВыбратьПутьИнтерактивно(Каталог); - Если Не ПустаяСтрока(НовыйКаталог) Тогда - Каталог = НовыйКаталог; - КонецЕсли; -КонецПроцедуры - -Функция ВыбратьПутьИнтерактивно(ТекущийПуть = "") Экспорт - ДиалогВыбораКаталога = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога); - ДиалогВыбораКаталога.Каталог = ТекущийПуть; - - Результат = ""; - Если ДиалогВыбораКаталога.Выбрать() Тогда - Результат = ДиалогВыбораКаталога.Каталог; - КонецЕсли; - - Возврат Результат; -КонецФункции - -Процедура ФайлыНачалоВыбора(Элемент, СтандартнаяОбработка) - ПервыйФайл = ?(ЗначениеЗаполнено(Файлы), СтрПолучитьСтроку(Файлы, 1), ""); - НовыеФайлы = ВыбратьФайлыИнтерактивно(ПервыйФайл); - Если Не ПустаяСтрока(НовыеФайлы) Тогда - Файлы = НовыеФайлы; - КонецЕсли; -КонецПроцедуры - -Функция ВыбратьФайлыИнтерактивно(ТекущийПуть = "") Экспорт - ДиалогВыбораТеста = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); - ДиалогВыбораТеста.Фильтр = "Обработка-тест (*.epf)|*.epf|Все файлы|*"; - ДиалогВыбораТеста.МножественныйВыбор = Истина; - ДиалогВыбораТеста.ПроверятьСуществованиеФайла = Истина; - ДиалогВыбораТеста.ПолноеИмяФайла = ТекущийПуть; - - Результат = Новый ТекстовыйДокумент; - Если ДиалогВыбораТеста.Выбрать() Тогда - Для каждого ПолноеИмяФайла Из ДиалогВыбораТеста.ВыбранныеФайлы Цикл - Результат.ДобавитьСтроку(ПолноеИмяФайла); - КонецЦикла; - КонецЕсли; - Текст = Результат.ПолучитьТекст(); - - Возврат Лев(Текст, СтрДлина(Текст) - 1); -КонецФункции diff --git "a/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/form" "b/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/form" deleted file mode 100644 index b9a9ca529..000000000 --- "a/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/form" +++ /dev/null @@ -1,945 +0,0 @@ -{27, -{18, -{ -{1,1, -{"ru","Конвертация тестов xUnitFor1C в версию4 из формата версии 3"} -},10,3}, -{09ccdc77-ea1a-4a6d-ab1c-3435eada2433, -{1, -{ -{15,1, -{3,4, -{0} -}, -{3,4, -{0} -}, -{7,3,0,1,100},0, -{3,3, -{-22} -}, -{3,4, -{0} -}, -{3,4, -{0} -}, -{3,3, -{-7} -}, -{3,3, -{-21} -}, -{3,0, -{0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e}, -{1,0},0,0,100,0},25,0,2, -{0,3,1}, -{0,6,1},2, -{0,2,2}, -{0,3,2},3, -{0,2,3}, -{0,3,3}, -{0,6,3},0,0, -{7,1, -{4,0, -{0},"",-1,-1,1,0,""}, -{4,0, -{0},"",-1,-1,1,0,""}, -{4,0, -{0},"",-1,-1,1,0,""},100,0,0},0,1, -{1,1, -{4, -{1,1, -{"ru","Страница1"} -}, -{7,0, -{4,0, -{0},"",-1,-1,1,0,""}, -{4,0, -{0},"",-1,-1,1,0,""}, -{4,0, -{0},"",-1,-1,1,0,""},100,2,0},-1,1,1,"Страница1",1, -{3,4, -{0} -}, -{3,4, -{0} -} -} -},1,1,0,4, -{2,8,1,1,1,0,0,0,0}, -{2,33,0,1,2,0,0,0,0}, -{2,392,1,1,3,0,0,8,0}, -{2,259,0,1,4,0,0,33,0},0,4294967295,5,64,0, -{3,4, -{0} -},0,0,57,0}, -{0} -}, -{3, -{e69bf21d-97b2-4f37-86db-675aea9ec2cb,2, -{2, -{ -{15,1, -{3,4, -{0} -}, -{3,4, -{0} -}, -{7,3,0,1,100},0, -{3,3, -{-22} -}, -{3,4, -{0} -}, -{3,4, -{0} -}, -{3,4, -{0} -}, -{3,3, -{-21} -}, -{3,0, -{0},4,1,0,00000000-0000-0000-0000-000000000000}, -{1,0},0,0,100,0},9,2,1,0,1,1, -{5,ed01fa45-2335-4c14-a640-86e38fddc832,12,1,0,1, -{5,b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,0,0, -{0,0, -{0} -} -} -},b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,9d0a2e40-b978-11d4-84b6-008048da06df,0,0,0} -}, -{8,0,0,400,25,1, -{0, -{2,-1,6,0}, -{2,-1,6,0} -}, -{0, -{2,2,0,24}, -{2,-1,6,0} -}, -{0, -{2,0,2,0}, -{2,-1,6,0} -}, -{0, -{2,0,3,0}, -{2,-1,6,0} -}, -{0, -{2,-1,6,0}, -{2,-1,6,0} -}, -{0, -{2,-1,6,0}, -{2,-1,6,0} -},1, -{0,2,1},0,0,0,0,0,0,0,1,1,0}, -{14,"КоманднаяПанель1",0,0,0,0}, -{0} -}, -{e69bf21d-97b2-4f37-86db-675aea9ec2cb,3, -{2, -{ -{15,1, -{3,4, -{0} -}, -{3,4, -{0} -}, -{7,3,0,1,100},0, -{3,3, -{-22} -}, -{3,4, -{0} -}, -{3,4, -{0} -}, -{3,4, -{0} -}, -{3,3, -{-21} -}, -{3,0, -{0},7,1,0,00000000-0000-0000-0000-000000000000}, -{1,0},0,0,100,0},9,2,0,2,0,1, -{5,446869d9-b94d-4b96-9a69-26db4a727003,3,1,3, -{6,7c951365-51d3-4e29-b13b-65497c07e708,1,e1692cc2-605b-4535-84dd-28440238746c, -{3,"КнопкаКонвертироватьНажатие", -{1,"КнопкаКонвертироватьНажатие", -{1,1, -{"ru","Кнопка конвертировать нажатие"} -}, -{1,1, -{"ru","Кнопка конвертировать нажатие"} -}, -{1,1, -{"ru","Кнопка конвертировать нажатие"} -}, -{4,0, -{0},"",-1,-1,1,0,""}, -{0,0,0} -} -},0}, -{6,1f454a39-8ca9-4d3a-9fba-d4151c198a60,1,fbe38877-b914-4fd5-8540-07dde06ba2e1, -{6,2,00000000-0000-0000-0000-000000000000,142, -{1,0,357c6a54-357d-425d-a2bd-22f4f6e86c87,2147483647,0},0,1},0}, -{6,aeebaebf-9be6-4211-9993-ff2b953d2583,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6, -{1,9d0a2e40-b978-11d4-84b6-008048da06df,0},0},1, -{5,b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,0,3,7c951365-51d3-4e29-b13b-65497c07e708, -{8,"ОсновныеДействияФормыКонвертировать",0,1, -{1,1, -{"ru","Выполнить"} -},1,446869d9-b94d-4b96-9a69-26db4a727003,1,1e2,0,1,1,0,1,0,0},aeebaebf-9be6-4211-9993-ff2b953d2583, -{8,"Разделитель",0,1, -{1,0},0,446869d9-b94d-4b96-9a69-26db4a727003,2,1e2,2,1,1,0,1,0,0},1f454a39-8ca9-4d3a-9fba-d4151c198a60, -{8,"ОсновныеДействияФормыЗакрыть",0,1, -{1,1, -{"ru","Закрыть"} -},1,446869d9-b94d-4b96-9a69-26db4a727003,3,1e2,0,1,1,0,1,0,0}, -{-1,0, -{0} -} -} -},b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,ebe214f4-07b5-4bc5-b33e-e676da4a9ea5,1,0,0} -}, -{8,0,267,400,292,1, -{0, -{2,3,1,-24}, -{2,-1,6,0} -}, -{0, -{2,0,1,0}, -{2,-1,6,0} -}, -{0, -{2,0,2,0}, -{2,-1,6,0} -}, -{0, -{2,0,3,0}, -{2,-1,6,0} -}, -{0, -{2,-1,6,0}, -{2,-1,6,0} -}, -{0, -{2,-1,6,0}, -{2,-1,6,0} -},1, -{0,3,1},1, -{0,3,0},0,0,0,0,0,1,3,1,1}, -{14,"ОсновныеДействияФормы",0,0,0,0}, -{0} -}, -{09ccdc77-ea1a-4a6d-ab1c-3435eada2433,6, -{1, -{ -{15,1, -{3,4, -{0} -}, -{3,4, -{0} -}, -{7,3,0,1,100},0, -{3,3, -{-22} -}, -{3,4, -{0} -}, -{3,4, -{0} -}, -{3,3, -{-7} -}, -{3,3, -{-21} -}, -{3,0, -{0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e}, -{1,0},0,0,100,0},25,0,1, -{0,8,1},0,2, -{0,5,3}, -{0,8,3},0,0, -{7,1, -{4,0, -{0},"",-1,-1,1,0,""}, -{4,0, -{0},"",-1,-1,1,0,""}, -{4,0, -{0},"",-1,-1,1,0,""},100,0,0},1,1, -{1,2, -{4, -{1,1, -{"ru","Каталог"} -}, -{7,0, -{4,0, -{0},"",-1,-1,1,0,""}, -{4,0, -{0},"",-1,-1,1,0,""}, -{4,0, -{0},"",-1,-1,1,0,""},100,2,0},-1,1,1,"Каталог",1, -{3,4, -{0} -}, -{3,4, -{0} -} -}, -{4, -{1,1, -{"ru","Файлы"} -}, -{7,0, -{4,0, -{0},"",-1,-1,1,0,""}, -{4,0, -{0},"",-1,-1,1,0,""}, -{4,0, -{0},"",-1,-1,1,0,""},100,2,0},-1,1,1,"Файлы",1, -{3,4, -{0} -}, -{3,4, -{0} -} -} -},1,1,0,8, -{2,6,1,1,1,0,0,0,0}, -{2,6,0,1,2,0,0,0,0}, -{2,376,1,1,3,0,0,6,0}, -{2,200,0,1,4,0,0,6,0}, -{2,6,1,1,1,1,0,0,0}, -{2,6,0,1,2,1,0,0,0}, -{2,376,1,1,3,1,0,6,0}, -{2,200,0,1,4,1,0,6,0},0,4294967295,4294967295,5,64,0, -{3,4, -{0} -},0,0,57,0}, -{0} -}, -{8,8,33,392,259,1, -{0, -{2,-1,6,0}, -{2,-1,6,0} -}, -{0, -{2,0,1,-32}, -{2,-1,6,0} -}, -{0, -{2,-1,6,0}, -{2,-1,6,0} -}, -{0, -{2,0,3,-8}, -{2,-1,6,0} -}, -{0, -{2,-1,6,0}, -{2,-1,6,0} -}, -{0, -{2,-1,6,0}, -{2,-1,6,0} -},0,0,0,0,0,0,0,2,2,0,0}, -{14,"Панель1",4294967295,0,0,0}, -{6, -{0fc7e20d-f241-460c-bdf4-5ad88e5474a5,4, -{3, -{ -{15,1, -{3,4, -{0} -}, -{3,4, -{0} -}, -{7,3,0,1,100},0, -{3,3, -{-22} -}, -{3,4, -{0} -}, -{3,4, -{0} -}, -{3,3, -{-7} -}, -{3,3, -{-21} -}, -{3,0, -{0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e}, -{1,0},0,0,100,0},11, -{1,1, -{"ru","Каталог:"} -},0,1,0,0,0, -{0,0,0},0, -{1,0},1, -{7,0, -{4,0, -{0},"",-1,-1,1,0,""}, -{4,0, -{0},"",-1,-1,1,0,""}, -{4,0, -{0},"",-1,-1,1,0,""},100,0,0},4,0,0,0,0,0,0,0}, -{0} -}, -{8,6,6,50,25,1, -{0, -{2,-1,6,0}, -{2,-1,6,0} -}, -{0, -{2,4,0,18}, -{2,-1,6,0} -}, -{0, -{2,-1,6,0}, -{2,-1,6,0} -}, -{0, -{2,4,2,44}, -{2,-1,6,0} -}, -{0, -{2,-1,6,0}, -{2,-1,6,0} -}, -{0, -{2,-1,6,0}, -{2,-1,6,0} -},1, -{0,4,1},0,1, -{0,4,3},0,0,0,0,0,1,0,0}, -{14,"НадписьКаталог",4294967295,0,0,0}, -{0} -}, -{381ed624-9217-4e63-85db-c4c3cb87daae,5, -{9, -{"Pattern", -{"S"} -}, -{ -{ -{15,1, -{3,4, -{0} -}, -{3,4, -{0} -}, -{7,3,0,1,100},0, -{3,3, -{-22} -}, -{3,4, -{0} -}, -{3,4, -{0} -}, -{3,3, -{-7} -}, -{3,3, -{-21} -}, -{3,1, -{-18},0,0,0}, -{1,0},0,0,100,1},30,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,4,0, -{"U"}, -{"U"},"",0,1,0,0,0,0, -{4,0, -{0},"",-1,-1,1,0,""}, -{4,0, -{0},"",-1,-1,1,0,""},0,0,0, -{0,0,0}, -{1,0},0,0,0,0,0,0,0,16777215,1} -}, -{1, -{9a7643d2-19e9-45e2-8893-280bc9195a97, -{4, -{"U"}, -{"U"},0,"",0,0} -} -}, -{1, -{2,e1692cc2-605b-4535-84dd-28440238746c, -{3,"КаталогНачалоВыбора", -{1,"КаталогНачалоВыбора", -{1,1, -{"ru","Каталог начало выбора"} -}, -{1,1, -{"ru","Каталог начало выбора"} -}, -{1,1, -{"ru","Каталог начало выбора"} -}, -{4,0, -{0},"",-1,-1,1,0,""}, -{0,0,0} -} -} -} -},0,1,0, -{1,0},0}, -{8,55,6,376,25,1, -{0, -{2,-1,6,0}, -{2,-1,6,0} -}, -{0, -{2,5,0,18}, -{2,-1,6,0} -}, -{0, -{2,-1,6,0}, -{2,-1,6,0} -}, -{0, -{2,0,3,-6}, -{2,-1,6,0} -}, -{0, -{2,-1,6,0}, -{2,-1,6,0} -}, -{0, -{2,-1,6,0}, -{2,-1,6,0} -},1, -{0,5,1},0,0,0,0,0,0,1,2,0,0}, -{14,"Каталог",4294967295,0,0,0}, -{0} -}, -{0fc7e20d-f241-460c-bdf4-5ad88e5474a5,7, -{3, -{ -{15,1, -{3,4, -{0} -}, -{3,4, -{0} -}, -{7,3,0,1,100},0, -{3,3, -{-22} -}, -{3,4, -{0} -}, -{3,4, -{0} -}, -{3,3, -{-7} -}, -{3,3, -{-21} -}, -{3,0, -{0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e}, -{1,0},0,0,100,0},11, -{1,1, -{"ru","Файлы:"} -},0,1,0,0,0, -{0,0,0},0, -{1,0},1, -{7,0, -{4,0, -{0},"",-1,-1,1,0,""}, -{4,0, -{0},"",-1,-1,1,0,""}, -{4,0, -{0},"",-1,-1,1,0,""},100,0,0},4,0,0,0,0,0,0,0}, -{0} -}, -{8,6,6,46,25,1, -{0, -{2,-1,6,0}, -{2,-1,6,0} -}, -{0, -{2,7,0,18}, -{2,-1,6,0} -}, -{0, -{2,-1,6,0}, -{2,-1,6,0} -}, -{0, -{2,7,2,40}, -{2,-1,6,0} -}, -{0, -{2,-1,6,0}, -{2,-1,6,0} -}, -{0, -{2,-1,6,0}, -{2,-1,6,0} -},1, -{0,7,1},0,1, -{0,7,3},0,0,0,1,0,1,0,0}, -{14,"НадписьФайлы",4294967295,0,0,0}, -{0} -}, -{381ed624-9217-4e63-85db-c4c3cb87daae,8, -{9, -{"Pattern", -{"S"} -}, -{ -{ -{15,1, -{3,4, -{0} -}, -{3,4, -{0} -}, -{7,3,0,1,100},0, -{3,3, -{-22} -}, -{3,4, -{0} -}, -{3,4, -{0} -}, -{3,3, -{-7} -}, -{3,3, -{-21} -}, -{3,1, -{-18},0,0,0}, -{1,0},0,0,100,1},30,0,2,1,0,0,1,0,0,0,1,0,0,0,0,0,4,0, -{"U"}, -{"U"},"",0,1,0,0,1,0, -{4,0, -{0},"",-1,-1,1,0,""}, -{4,0, -{0},"",-1,-1,1,0,""},0,0,0, -{0,0,0}, -{1,0},0,0,0,0,0,0,0,16777215,1} -}, -{1, -{9a7643d2-19e9-45e2-8893-280bc9195a97, -{4, -{"U"}, -{"U"},1,"",0,0} -} -}, -{1, -{2,e1692cc2-605b-4535-84dd-28440238746c, -{3,"ФайлыНачалоВыбора", -{1,"ФайлыНачалоВыбора", -{1,1, -{"ru","Файлы начало выбора"} -}, -{1,1, -{"ru","Файлы начало выбора"} -}, -{1,1, -{"ru","Файлы начало выбора"} -}, -{4,0, -{0},"",-1,-1,1,0,""}, -{0,0,0} -} -} -} -},0,1,0, -{1,0},0}, -{8,51,6,376,194,1, -{0, -{2,-1,6,0}, -{2,-1,6,0} -}, -{0, -{2,0,1,-12}, -{2,-1,6,0} -}, -{0, -{2,-1,6,0}, -{2,-1,6,0} -}, -{0, -{2,0,3,-6}, -{2,-1,6,0} -}, -{0, -{2,-1,6,0}, -{2,-1,6,0} -}, -{0, -{2,-1,6,0}, -{2,-1,6,0} -},0,0,0,0,0,0,1,1,2,0,0}, -{14,"Файлы",4294967295,0,0,0}, -{0} -}, -{35af3d93-d7c7-4a2e-a8eb-bac87a1a3f26,9, -{1, -{ -{ -{15,1, -{3,4, -{0} -}, -{3,4, -{0} -}, -{7,3,0,1,100},0, -{3,3, -{-22} -}, -{3,4, -{0} -}, -{3,4, -{0} -}, -{3,3, -{-7} -}, -{3,3, -{-21} -}, -{3,0, -{0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e}, -{1,0},0,0,100,0},6, -{1,1, -{"ru","Искать в подкаталогах"} -},1,0,1,0,100,1},4,0,0,0,0,0}, -{0} -}, -{8,6,30,376,49,1, -{0, -{2,-1,6,0}, -{2,-1,6,0} -}, -{0, -{2,9,0,18}, -{2,-1,6,0} -}, -{0, -{2,-1,6,0}, -{2,-1,6,0} -}, -{0, -{2,9,2,370}, -{2,-1,6,0} -}, -{0, -{2,-1,6,0}, -{2,-1,6,0} -}, -{0, -{2,-1,6,0}, -{2,-1,6,0} -},1, -{0,9,1},0,1, -{0,9,3},0,0,0,0,2,3,0,0}, -{14,"ИскатьВПодкаталогах",4294967295,0,0,0}, -{0} -}, -{35af3d93-d7c7-4a2e-a8eb-bac87a1a3f26,10, -{1, -{ -{ -{15,1, -{3,4, -{0} -}, -{3,4, -{0} -}, -{7,3,0,1,100},0, -{3,3, -{-22} -}, -{3,4, -{0} -}, -{3,4, -{0} -}, -{3,3, -{-7} -}, -{3,3, -{-21} -}, -{3,0, -{0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e}, -{1,0},0,0,100,0},6, -{1,1, -{"ru","Подробный лог"} -},1,0,1,0,100,1},4,0,0,0,0,0}, -{0} -}, -{8,6,54,376,73,1, -{0, -{2,-1,6,0}, -{2,-1,6,0} -}, -{0, -{2,10,0,18}, -{2,-1,6,0} -}, -{0, -{2,-1,6,0}, -{2,-1,6,0} -}, -{0, -{2,10,2,370}, -{2,-1,6,0} -}, -{0, -{2,-1,6,0}, -{2,-1,6,0} -}, -{0, -{2,-1,6,0}, -{2,-1,6,0} -},1, -{0,10,1},0,1, -{0,10,3},0,0,0,0,3,4,0,0}, -{14,"ПодробныйЛог",4294967295,0,0,0}, -{0} -} -} -} -} -},400,292,1,0,1,4,4,48,400,292,96}, -{ -{1},6, -{5, -{ -{1},0,0,1,"ОбработкаОбъект", -{"Pattern", -{"#",2bd25281-0454-4bf1-9b52-a17b78c7834f} -} -}, -{ -{2},1,0,1,"Каталог", -{"Pattern", -{"S"} -} -}, -{ -{3},1,0,1,"Файлы", -{"Pattern", -{"S"} -} -}, -{ -{4},1,0,1,"ИскатьВПодкаталогах", -{"Pattern", -{"B"} -} -}, -{ -{5},1,0,1,"ПодробныйЛог", -{"Pattern", -{"B"} -} -} -}, -{4, -{5, -{1, -{2} -} -}, -{8, -{1, -{3} -} -}, -{9, -{1, -{4} -} -}, -{10, -{1, -{5} -} -} -} -}, -{59d6c227-97d3-46f6-84a0-584c5a2807e1,1, -{2,1, -{0,3, -{"#",91f722a0-4cc1-11d6-a3c9-0050bae0a776, -{3,6641570f-5fe8-41b8-9fdd-a7d1b233a01c,"Каталог",1, -{2} -} -}, -{"#",91f722a0-4cc1-11d6-a3c9-0050bae0a776, -{3,6641570f-5fe8-41b8-9fdd-a7d1b233a01c,"Файлы",1, -{3} -} -}, -{"#",91f722a0-4cc1-11d6-a3c9-0050bae0a776, -{3,6641570f-5fe8-41b8-9fdd-a7d1b233a01c,"ИскатьВПодкаталогах",1, -{4} -} -} -}, -{0},1} -}, -{1, -{70001,e1692cc2-605b-4535-84dd-28440238746c, -{3,"ПриОткрытии", -{1,"ПриОткрытии", -{1,1, -{"ru","При открытии"} -}, -{1,1, -{"ru","При открытии"} -}, -{1,1, -{"ru","При открытии"} -}, -{4,0, -{0},"",-1,-1,1,0,""}, -{0,0,0} -} -} -} -},1,4,1,0,0,0, -{0}, -{0}, -{7,0, -{4,0, -{0},"",-1,-1,1,0,""}, -{4,0, -{0},"",-1,-1,1,0,""}, -{4,0, -{0},"",-1,-1,1,0,""},100,0,0},1,2,0,0,1,1} \ No newline at end of file diff --git a/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Templates/v8unpack.xml b/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Templates/v8unpack.xml deleted file mode 100644 index 60c08103f..000000000 --- a/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Templates/v8unpack.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git a/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Templates/v8unpack/Ext/Template.bin b/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Templates/v8unpack/Ext/Template.bin deleted file mode 100644 index 59496ab38..000000000 Binary files a/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Templates/v8unpack/Ext/Template.bin and /dev/null differ diff --git "a/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217.xml" "b/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217.xml" deleted file mode 100644 index 8727d091b..000000000 --- "a/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217.xml" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Ext/Template.txt" "b/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Ext/Template.txt" deleted file mode 100644 index 096e10ae6..000000000 --- "a/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Templates/\320\221\320\260\320\267\320\276\320\262\321\213\320\265\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Ext/Template.txt" +++ /dev/null @@ -1,24 +0,0 @@ -Проверить -ПроверитьИстину -ПроверитьЛожь -ПроверитьДату -ПроверитьРавенствоДатСТочностью2Секунды -ПроверитьРавенство -ПроверитьНеРавенство -ПроверитьБольше -ПроверитьБольшеИлиРавно -ПроверитьМеньше -ПроверитьМеньшеИлиРавно -ПроверитьВыполнилось -ПроверитьМетодВыполнился -ПроверитьНеВыполнилось -ПроверитьМетодНеВыполнился -ПроверитьЗаполненность -ПроверитьНеЗаполненность -ПроверитьТип -ПроверитьВхождение -ПроверитьВхождениеВКоллекцию -ПроверитьВалидностьЗапросаСКД -ПроверитьНаличиеОбъектаИБ -ПроверитьРавенствоФайлов -ПропуститьТест \ No newline at end of file diff --git "a/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Templates/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205.xml" "b/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Templates/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205.xml" deleted file mode 100644 index 8f343e4e4..000000000 --- "a/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Templates/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205.xml" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Templates/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Ext/Template.txt" "b/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Templates/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Ext/Template.txt" deleted file mode 100644 index 2cf09194f..000000000 --- "a/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Templates/\320\223\320\265\320\275\320\265\321\200\320\260\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Ext/Template.txt" +++ /dev/null @@ -1,5 +0,0 @@ -СоздатьДанныеПоМакетам -СоздатьДанныеПоТабличномуДокументу -УдалитьСозданныеДанные -СоздатьПользователяИБ -РазложитьСтрокуВМассивПодстрок \ No newline at end of file diff --git "a/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Templates/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224.xml" "b/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Templates/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224.xml" deleted file mode 100644 index 360f8d6ee..000000000 --- "a/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Templates/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224.xml" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Templates/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224/Ext/Template.txt" "b/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Templates/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224/Ext/Template.txt" deleted file mode 100644 index 20982aa63..000000000 --- "a/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Templates/\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\230\320\267\320\221\320\224/Ext/Template.txt" +++ /dev/null @@ -1,10 +0,0 @@ -ПолучитьКоличествоДокументовПоОтбору -ПолучитьКоличествоЭлементовСправочникаПоОтбору -ПолучитьКоличествоСтрокВДокументахПоОтбору -ПолучитьИтоговуюСуммуТабличнойЧастиДокументовПоОтбору -ПолучитьИтоговуюСуммуДокументовПоОтбору -ПолучитьКоличествоЭлементовМетаданногоПоОтбору -ПолучитьКоличествоБизнесПроцессовПоОтбору -ПолучитьКоличествоЗадачПоОтбору -ПолучитьКоличествоЭлементовРегистраПоОтбору -ПолучитьЭлементыМетаданногоПоОтбору \ No newline at end of file diff --git "a/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Templates/\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\257\320\264\321\200\320\260.xml" "b/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Templates/\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\257\320\264\321\200\320\260.xml" deleted file mode 100644 index d556e41b0..000000000 --- "a/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Templates/\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\257\320\264\321\200\320\260.xml" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Templates/\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\257\320\264\321\200\320\260/Ext/Template.txt" "b/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Templates/\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\257\320\264\321\200\320\260/Ext/Template.txt" deleted file mode 100644 index 341a1519d..000000000 --- "a/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Templates/\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\257\320\264\321\200\320\260/Ext/Template.txt" +++ /dev/null @@ -1,2 +0,0 @@ -ВывестиСообщение -ПрерватьТест=КонтекстЯдра.ВызватьОшибкуПроверки \ No newline at end of file diff --git "a/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Templates/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206.xml" "b/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Templates/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206.xml" deleted file mode 100644 index 805b6763a..000000000 --- "a/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Templates/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206.xml" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Templates/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/Ext/Template.txt" "b/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Templates/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/Ext/Template.txt" deleted file mode 100644 index 665228224..000000000 --- "a/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Templates/\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\242\320\260\320\261\320\273\320\270\321\206/Ext/Template.txt" +++ /dev/null @@ -1,3 +0,0 @@ -ПроверитьРавенствоТаблиц -ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям -ПолучитьТаблицуЗначенийИзТабличногоДокумента \ No newline at end of file diff --git "a/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Templates/\320\250\320\260\320\261\320\273\320\276\320\275\320\242\320\265\321\201\321\202\320\260.xml" "b/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Templates/\320\250\320\260\320\261\320\273\320\276\320\275\320\242\320\265\321\201\321\202\320\260.xml" deleted file mode 100644 index 808e5fc87..000000000 --- "a/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Templates/\320\250\320\260\320\261\320\273\320\276\320\275\320\242\320\265\321\201\321\202\320\260.xml" +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git "a/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Templates/\320\250\320\260\320\261\320\273\320\276\320\275\320\242\320\265\321\201\321\202\320\260/Ext/Template.txt" "b/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Templates/\320\250\320\260\320\261\320\273\320\276\320\275\320\242\320\265\321\201\321\202\320\260/Ext/Template.txt" deleted file mode 100644 index 0a533b325..000000000 --- "a/tools/epf/utils/xddTestsConvertIntoRebornFormat/xddTestsConvertIntoRebornFormat/Templates/\320\250\320\260\320\261\320\273\320\276\320\275\320\242\320\265\321\201\321\202\320\260/Ext/Template.txt" +++ /dev/null @@ -1,79 +0,0 @@ -#Область ПеременныеТестирования -Перем КонтекстЯдра; -Перем Ожидаем; -Перем Утверждения; -Перем ГенераторТестовыхДанных; -Перем ЗапросыИзБД; -Перем УтвержденияПроверкаТаблиц; -#КонецОбласти - -#Область ПеременныеТестирования_УФ -&НаКлиенте -Перем КонтекстЯдра; -&НаКлиенте -Перем Ожидаем; -&НаКлиенте -Перем Утверждения; -&НаКлиенте -Перем ГенераторТестовыхДанных; -&НаКлиенте -Перем ЗапросыИзБД; -&НаКлиенте -Перем УтвержденияПроверкаТаблиц; -#КонецОбласти - -#Область ОписанияТестов -Процедура Инициализация(КонтекстЯдраПараметр) Экспорт - КонтекстЯдра = КонтекстЯдраПараметр; - Ожидаем = КонтекстЯдра.Плагин("УтвержденияBDD"); - Утверждения = КонтекстЯдра.Плагин("БазовыеУтверждения"); - ГенераторТестовыхДанных = КонтекстЯдра.Плагин("СериализаторMXL"); - ЗапросыИзБД = КонтекстЯдра.Плагин("ЗапросыИзБД"); - УтвержденияПроверкаТаблиц = КонтекстЯдра.Плагин("УтвержденияПроверкаТаблиц"); -КонецПроцедуры - -Процедура ЗаполнитьНаборТестов(НаборТестов) Экспорт -#КонецОбласти - -#Область ОписанияТестов_УФ -&НаКлиенте -Процедура Инициализация(КонтекстЯдраПараметр) Экспорт - КонтекстЯдра = КонтекстЯдраПараметр; - Ожидаем = КонтекстЯдра.Плагин("УтвержденияBDD"); - Утверждения = КонтекстЯдра.Плагин("БазовыеУтверждения"); - ГенераторТестовыхДанных = КонтекстЯдра.Плагин("СериализаторMXL"); - ЗапросыИзБД = КонтекстЯдра.Плагин("ЗапросыИзБД"); - УтвержденияПроверкаТаблиц = КонтекстЯдра.Плагин("УтвержденияПроверкаТаблиц"); -КонецПроцедуры - -&НаКлиенте -Процедура ЗаполнитьНаборТестов(НаборТестов) Экспорт -#КонецОбласти - -#Область ОписанияТестов_УФ_ДвеДвойныеКавычки -&НаКлиенте -Процедура Инициализация(КонтекстЯдраПараметр) Экспорт - КонтекстЯдра = КонтекстЯдраПараметр; - Ожидаем = КонтекстЯдра.Плагин(""УтвержденияBDD""); - Утверждения = КонтекстЯдра.Плагин(""БазовыеУтверждения""); - ГенераторТестовыхДанных = КонтекстЯдра.Плагин(""СериализаторMXL""); - ЗапросыИзБД = КонтекстЯдра.Плагин(""ЗапросыИзБД""); - УтвержденияПроверкаТаблиц = КонтекстЯдра.Плагин(""УтвержденияПроверкаТаблиц""); -КонецПроцедуры - -&НаКлиенте -Процедура ЗаполнитьНаборТестов(НаборТестов) Экспорт -#КонецОбласти - -#Область ДобавитьИмяТеста - НаборТестов.Добавить(%ИмяТеста%); -#КонецОбласти - -#Область ЗавершениеСпискаТестов -КонецПроцедуры - -#КонецОбласти - -#Область УФ_НаКлиенте -&НаКлиенте -#КонецОбласти diff --git a/tools/jenkins/Jenkinsfile-fast b/tools/jenkins/Jenkinsfile-fast index 53cd978cc..deabbea33 100644 --- a/tools/jenkins/Jenkinsfile-fast +++ b/tools/jenkins/Jenkinsfile-fast @@ -68,6 +68,20 @@ node("slave") { cmd("opm run init file --v8version 8.3.10", isUnix) } } + + echo "Сборка пакета" + timeout(30){ + command = """opm build ./""" + try{ + cmd(command, isUnix) + } catch (e) { + echo "build status : ${e}" + currentBuild.result = 'UNSTABLE' + } + } + + makeArtifacts('**/add*.ospx') + makeArtifacts('**/add*.zip') } stage('Контроль технического долга'){ @@ -235,7 +249,7 @@ node("slave") { def command = "vrunner vanessa --settings tools/JSON/vrunner.json --path features/${buildPath}"; def errors = [] - timeout(25){ + timeout(40){ timestamps { try{ cmd(command, isUnix) @@ -282,18 +296,18 @@ node("slave") { // } makeAllure(resultsForAllure) - timeout(30){ - command = """opm build ./""" - try{ - cmd(command, isUnix) - } catch (e) { - echo "build status : ${e}" - currentBuild.result = 'UNSTABLE' - } - } + // timeout(30){ + // command = """opm build ./""" + // try{ + // cmd(command, isUnix) + // } catch (e) { + // echo "build status : ${e}" + // currentBuild.result = 'UNSTABLE' + // } + // } - makeArtifacts('**/add*.ospx') - makeArtifacts('**/add*.zip') + // makeArtifacts('**/add*.ospx') + // makeArtifacts('**/add*.zip') makeArtifacts('**/ServiceBases/**/junitreport/**') makeArtifacts('**/ServiceBases/**/allurereport/**') diff --git "a/\320\241ODE_OF_CONDUCT.md" "b/\320\241ODE_OF_CONDUCT.md" new file mode 100644 index 000000000..014b4806d --- /dev/null +++ "b/\320\241ODE_OF_CONDUCT.md" @@ -0,0 +1,49 @@ +# Кодекс поведения участника проекта + +## Наш принцнип + +В интересах создания открытой и гостепреимной среды разработки, мы, как контрибьюторы и пользователи обязуемся участвовать в нашем проекте и в Нашем сообществе без притеснений кого бы то ни было, независимо от возраста, размера тела, наличия инвалидности, этнической принадлежности, половых характеристик, уровеня опыта, образования, социально-экономический статуса, национальности, личности, внешности, расы или религии. + +## Наши стандарты + +Примеры поведения, способствующего созданию позитивной среды в нашем сообществе включают: + +* Использование приветливого стиля в формулировках +* С уважением относиться к различным точкам зрения и опыту +* Изящно принимать конструктивную критику +* Сосредоточиться на том, что лучше для сообщества +* Показывать сочувствие к другим членам сообщества + +Примеры недопустимого поведения участников включают в себя: + +* Троллинг, оскорбительные / уничижительные комментарии, личные или политические споры +* Публикация чужой личной информации, такой как физический или электронный адрес, без явного разрешения +* Другое поведение, которое можно обоснованно считать неуместным в профессиональная сообществе + +## Наши обязанности + +Ответственные за проект обеспечивают уточнение стандартов приемлемого поведения и, предпримут соответствующие и справедливые корректирующие действия на любые случаи недопустимого поведения. + +Ответственные за проект имеют право и главное ответственность удалять, редактировать или отклонять комментарии, коммиты, код, правки вики, обсуждения и другие материалы которые не приведены в соответствие с настоящим Кодексом поведения, или временно запретить доступ участнику или навсегда удалить любого участника за систематическое нарушение настоящего кодекса поведения. + +## Объем применения настоящего кодекса + +Настоящий Кодекс поведения применяется как внутри проекта, так и в общественных местах (включая публичные сообщества) когда человек представляет проект или его сообщество. + +Примеры: + +* представление проекта или сообщества, включая использование официальной электронной почты проекта адрес +* размещение через официальный аккаунт в социальной сети, или выступать в качестве назначенного представитель на онлайн или оффлайн мероприятии. + +Способы представление проекта может быть далее определены и уточнены ответственными за данный проект. + +## Правоприменение настоящего кодекса + +Случаи оскорбительного, оскорбительного или иного неприемлемого поведения могут быть направлены на рассмотрение команде проекта по адресу help@silverbulleters.org. +Все жалобы будут рассмотрены и расследованы, по каждому случаю будут приняты меры сообразно обстоятельствам. + +Команда проекта обязуется сохранять конфиденциальность в отношении автора жалобы. +Дальнейшие подробности конкретных политик исполнения могут быть размещены отдельно. + +Ответственные за проект, которые не соблюдают Кодекс поведения должным образом могут столкнуться с временными или постоянными последствиями, тем способом как это определено другими +членами руководства проекта.