-
Появляется ошибка, в которой есть текст: "Неизвестный идентификатор формы". Это означает, что есть два или более epf файла, у которых совпадает поле Имя (это которое находится около Синонима и Комментария).
-
При открытии внешних обработок могут появляться окна с предупреждениями безопасности.
- Если вы используете версию платформы 8.3.9.2033 или новее, тогда может появиться окно Предупреждение безопасности.
- Подробно этот механизм описан здесь.
- Решение описано по ссылке
- Кратко - Если хотите выключить этот механизм для всех баз - пропишите в файле conf.cfg строку: DisableUnsafeActionProtection=.*
-
При открытии
bddRunner
илиxddTestRunner
появляются сообщенияНеизвестный идентификатор плагина: <ЗагрузчикКаталога> при попытке загрузить тесты
Возможно, запущено 1С:Предприятие без пользователей. В этом случае 1С не применяет настройки безопасного режима. Нужно создать хотя бы одного пользователя, снять у него флаг "Защита от опасных действий" и запустить 1С:Предприятие для этого пользователя.
-
При интерактивном запуске не загружаются и не выполняются фичи, открывается только форма
bddRunner
Несколько вариантов:
-
У Вас не задан список библиотек на закладке
Библиотеки
- Сначала очистите список библиотек - например, кнопкой
Очистить
- Далее Перезапустите
bddRunner
- Автоматически подставится путь к системным библиотекам
Vanessa.ADD
-$instrumentsRoot/features/libraries
- новые настройки будут сохранены автоматически
- Сначала очистите список библиотек - например, кнопкой
-
У Вас заданы неверные библиотеки
- например, используются библиотеки от нашего старого продукта
vanessa-behavior
- тогда или примените решение выше с полной очисткой библиотек
- или добавьте системную библиотеку
$instrumentsRoot/features/libraries
в список библиотек - и далее обязательно нажмите
Сохранить настройки
- например, используются библиотеки от нашего старого продукта
-
-
При пакетном запуске не загружаются и не выполняются фичи, открывается только форма
bddRunner
- У Вас неверный/устаревший/ json-файл настроек, несовместимый формат со штатным json, например, что читает 1С 😦
- например:
- одинарный слеш
\
не разрешен - используйте или\\
или/
- или одинарные кавычки ` или ’ не разрешены - используйте
\"
- Пример правильной настройки
- одинарный слеш
"КомандаСделатьСкриншот": "\"C:\\Program Files (x86)\\IrfanView\\i_view32.exe\" /capture=1 /convert=",
* Разбор проблемы в https://xdd.silverbulleters.org/t/pri-paketnom-zapuske-ne-zagruzhayutsya-i-ne-vypolnyayutsya-fichi-otkryvaetsya-tolko-bddrunner/2132
-
Как поставить точку останова (брейкпоинт) во внешней обработке для отладки?
- Используйте штатный механизм отладки 1С, если у вас
- файловая база
- или клиент 1С и сервер 1С находятся на одной машине.
- Если это не так, тогда более сложный путь:
- Надо закрыть сеанс TestManager.
- Надо открыть сеанс TestManager.
- Надо открыть через меню
Файл / Открыть файл
обработку, в которой стоит точка останова. - Только после пункта 3 надо открыть bddRunner.epf.
- Теперь остановка на точке остановки во внешнией обработке будет работать. Но до первого изменений кода в ней. Если изменили код, то надо повторить все действия с начала.
- Используйте штатный механизм отладки 1С, если у вас
-
Как вызвать код плагина на сервере при запуске в управляемой форме?
- Все просто.
- Практически любой плагин можно подключать на сервере
- Например:
ЗапросыИзБД = ВнешниеОбработки.Создать("ЗапросыИзБД");
ЗапросыИзБД.ПолучитьКоличествоЭлементовСправочникаПоОтбору(...);
Ожидаем = ВнешниеОбработки.Создать("УтвержденияBDD");
Ожидаем.Что(Значение, "Должно быть равно 5, а это не так!").
Равно(5);
- Небольшое ограничение - нужно помнить, что на сервере нет состояний, поэтому плагины запускаются без состояния.
- Как работать с файлами внутри тестов/шагов? Как получить путь к текущему файлу или к файлу, рядом с ним?
Два варианта:
-
Используйте организацию файлов через рабочий каталог проекта (рекомендуемый путь)
- В BDD –
Ванесса.Объект.КаталогПроекта
- В TDD -
КонтекстЯдра.Объект.КаталогПроекта
- эта настройка задается
- либо через командную строку (например, через
vanessa-runner
) - либо интерактивно, через форму настроек (
Сервис
)
- либо через командную строку (например, через
- В BDD –
-
В TDD можно использовать получить полный путь к текущему файлу теста – в тесте нужно определить свойство «ПутьКФайлуПолный» - это или Глобальная публичная переменная модуля - или реквизит обработки (для серверных модулей)
- В этой переменной будет клиентский путь к файлу теста
- Переменная доступна как на этапе заполнения набора/списка тестов, так и при выполнении
-
В BDD также можно использовать шаг
И я буду выбирать внешний файл "ИмяФайла"
для подмены интерактивных действий пользователя по выбору файла/каталога в окне выбора файлов/каталогов
-
Как пропустить сценарий, чтобы он не падал?
- Можно его закоментировать в тексте фичи (символ #)
- Можно поставить сценарию тег - и использовать теги фильтры
- Да пусть падает - тем более если он не реализован - то он будет желтым, а если реализован - тогда почему он падает?
-
Как запустить фичу из поставки Vanessa.ADD у себя в базе?
- Большинство фич, которые идут в поставке Vanessa.ADD, требуют, чтобы их запускали в специальной служебной базе.
- Надо собрать служебную базу. Для этого надо загрузить CF из (.\add\lib\CF\83)
- Надо руками в базе установить константу Путь к Vanessa ADD - это полный путь к обработке bddRunner.epf включая имя файла
- Надо открыть в базе Vanessa.ADD
- Надо указать тег исключение IgnoreOnCIMainBuild (список исключаемых тегов)
- Для ОФ надо ещё указать тег IgnoreOnOFBuilds
- После этого можно загружать все фичи из каталога фич и запускать на выполнение.
-
Как мне удалить в транзакции созданные данные?
- В BDD не обязательно их удалять за собой.
- Если всё же хотите, Вы можете гарантированно удалить их в процедуре ПередОкончаниемСценария(). Она срабатывает в любом случае, даже если сценарий упал.
- Если создавались данные из макета (Данные = Ванесса.СоздатьДанныеПоТабличномуДокументу(Макет)), то можно использовать метод Ванесса.УдалитьСозданныеДанные(Данные).
- Лучше стремиться к тому, чтобы сценарий сам обеспечивал себе окружение, чтобы успешно выполниться.
-
Где мне лучше создавать служебные данные для выполнения сценария?
- В секции Контекст feature файла
- В процедуре ПередНачаломСценария()
-
Если в сценарии возникла ошибка, модальное окно и т.д. - как мне гарантированно закрыть все эти окна, чтобы следующий сценарий не падал?
- В секции контекст надо добавить шаг И Я закрыл все окна клиентского приложения. А ещё лучше создать экспортный сценарий и в него добавить этот шаг. А в секции Контекст вызывать экспортный сценарий.
-
Как проверять поведение системы под разными ролями?
- Надо запустить несколько TestClient на разных портах и переключаться между ними.
-
Как сохранять скриншоты при ошибках сценариев?
Интерактивная настройка: + Закладка
Сервис
+ далееАвтоинструкции
+ полеКонсольная команда создания скриншотов
+ после строки команды вставляется имя файла и в таком виде команда запускается!Можно устанавливать
-
как
NirCMD
-
http://www.nirsoft.net/utils/nircmd.zip
- команда
nircmd savescreenshot
- команда
-
так и
IrfanView
- команда
"C:\Program Files (x86)\IrfanView\i_view32.exe" /capture=1 /convert=
- команда
- команда
-
"\"C:\\Program Files (x86)\\IrfanView\\i_view32.exe\" /capture=1 /convert=",
+ Важно только устанавливать 32-разрядные версии !!
Примеры json-файла настройки фиксации скриншотов
для `NirCMD`:
"ДелатьСкриншотПриВозникновенииОшибки": true,
"СниматьСкриншотКаждогоОкна1С": true,
"КаталогOutputСкриншоты": "$workspaceRoot/build/out/ScreenShots",
"КомандаСделатьСкриншот": "nircmd savescreenshot "
или для `IrfanView`:
"ДелатьСкриншотПриВозникновенииОшибки": true,
"СниматьСкриншотКаждогоОкна1С": true,
"КаталогOutputСкриншоты": "$workspaceRoot/build/out/ScreenShots",
"КомандаСделатьСкриншот": "\"C:\\Program Files (x86)\\IrfanView\\i_view32.exe\" /capture=1 /convert=",
-
На CI сервере скриншот формируется, но вместо изображения чёрный экран. Как настроить сервер CI?
- Запускать джоб Jenkins в режиме сервиса нельзя. На CI надо настроить автовход под какой либо учётной записью и в автозагрузку надо поместить команду запуска джоба Jenkins.
- Нельзя использовать для доступа к CI RDP. Вообще. Надо использовать другой софт для удаленного доступа к нему, например TightVNC. RDP полностью гасит видеокарту (виртуальную или настоящую) при отключении.
- Надо посмотреть схему энерго сбережения в панели управления, там может стоять отключение дисплея через пару минут. Это надо выключить.
-
Почему у меня не работает тэг
@tree
- Для работы тега
@tree
надо использовать либо только табы, либо только пробелы. В пределах одной фичи нельзя в отступах строк использовать и пробелы и Табы.
- Для работы тега
-
Я подключаюсь по RDP к серверу. И фича выполняется нормально, но если свернуть окно RDP, то возникает ошибка.
- Это связано с особенностью платформы 1С. Некоторые методы платформы (кнопконажималки) не работают, когда погашена видеокарта (а RDP клиент её гасит, когда вы его сворачиваете). Поэтому не надо использовать RDP для доступа к CI (или другим) серверам, когда вы хотите использовать кнопконажималку.
-
Я вызвал метод Ванесса.ЗапретитьВыполнениеШагов(), затем я подключаю свой таймер, и мне надо сделать, чтобы шаг упал.
- в этом случае вместо вызова исключения надо сделать Ванесса.ПродолжитьВыполнениеШагов(Истина)
-
Как использовать Sikuli-скрипты.
- Установите SikuliX согласно инструкции http://sikulix.com/quickstart/;
- Ознакомьтесь с http://sikulix-2014.readthedocs.io/en/latest/faq/010-command-line.html;
- Укажите через path путь к каталогу с runsikulix(.cmd);
- Разрабатывайте свои Sikuli-скрипты с помощью SikuiliX IDE (http://sikulix-2014.readthedocs.io/en/latest/index.html) либо используйте имеющиеся;
- Выполнение скрипта в реализации шага вызывайте через Ванесса.ВыполнитьSikuliСкрипт().
-
Как получить отчет Allure у себя на компьютере под Windows
- Надо скачать дистрибутив Allure отсюда
- Надо прописать в Path каталог где лежит allure.bat
- Для использования через командную строку можно использовать строки ниже
- Вызвать команду call allure generate {каталог где лежат ваши xml в формате Allure}
- Вызвать команду call allure open
- или установить флаг "Показать отчет Allure в браузере" на закладке
Сервис - отчет о запуске сценариев
и сохранить настройки- в этом случае после выполнения тестов и формирования отчетов Allure BDDRunner самостоятельно выполнит обе команды и покажет отчет Allure в браузере
- или выполнить команду
Внешние инструменты - Отобразить отчет Allure в браузере
-
Как при возникновении ошибки на CI получить скриншоты всех окон 1С?
- Пока эта фича работает только под Windows.
- Надо в json файле, в котором указываются параметры запуска Vanessa-ADD, указать строку:
"СниматьСкриншотКаждогоОкна1С": "Истина"
- Надо установить на CI сервер java 8 (если у вас Jenkins - то скорее всего она у вас уже есть)
- Надо установить SikuliX версии 1.1 или выше. Брать отсюда. Там надо скачать sikulixsetup-1.1.1.jar.
- Надо чтобы файл runsikulix.cmd был прописан в переменной PATH.
-
Как для УФ (управляемой формы) и ОФ (обычной формы) шаги сделать общими?
- Разместить код шага в модуле объекта обработки,
- В коде управляемой формы в клиентском методе шага нужно вызвать серверный метод,
- в котором выполнить
ОбъектНаСервере = ЗначениеФормыВОбъект("Объект")
- и вызвать код из модуля обработки
ОбъектНаСервере.НужныйМетод(...)
- в котором выполнить
- Сигнатуры методов в УФ и ОФ должны совпадать соответственно
- Что нужно сделать, чтобы увидеть собственные шаги в форме
Известные шаги
?
- В строке описания шага нужно заполнить последние параметры (4 и 5 параметры) в процедуре ДобавитьШагВМассивТестов. Там как раз задается развернутое описание шага и место в дереве.
- Место в группе можно задавать с учетом иерархии.
- Указание группы как
UI.Формы.Кнопки.Мой шаг
расположит шаг в иерархии дереваUI
-Формы
-Кнопки
- Указание группы как
- Например,
Ванесса.ДобавитьШагВМассивТестов(ВсеТесты, "Пауза(Парам01)","Пауза", "И Пауза 1",
"Позволяет сделать паузу нужной длительности.", "Прочее.Сделать паузу");
- Как быстро выполнить одну фичу или фичи из одного каталога?
- Правильнее запускать фичи из командной строки с помощью инструмента Vanessa-Runner
- Для прогона одной фичи используйте команду
vrunner vanessa --settings tools\vrunner.json --path ПутьКФиче
или
vrunner vanessa --settings tools\vrunner.json --path ПутьККаталогуФич
где
tools\vrunner.json
- путь к файлу настройки запуска, документированный в readme.md- а
ПутьКФиче
илиПутьККаталогуФич
- прямые или относительные пути к конкретной фиче или каталогу с фичами
- Каким образом увидеть лог выполнения фич, сценариев и шагов или подробный лог при выполнении в командной строке, например, в логе CI-сервера - Jenkins, Gitlab и т.п.
-
Для этого нужно настроить файл настройки в json-формате и указать его использование при запуске в командной строке с помощью vanessa-runner или в командной строке запуска 1С
-
В файле настройки нужно включить 2 параметра
- включить
"ДелатьЛогВыполненияСценариевВТекстовыйФайл": true
- установить путь к логу выполнения. Например,
"ИмяФайлаЛогВыполненияСценариев": "$workspaceRoot/build/log.txt"
- включить
-
После включения данных настроек в логе выполнения будут видны пути выполняемых фич и названия выполняемых сценариев
-
Также можно включить более подробный лог с показом выполнения каждого шага, а не только сценариев
- В файле настройки нужно включить параметр
"ВыводитьВЛогВыполнениеШагов": true
- В файле настройки нужно включить параметр
-
Также можно включить намного более подробный лог с показом всех отладочных сообщений
- В файле настройки нужно включить параметр
"DebugLog": true
- В файле настройки нужно включить параметр
-
Не удается выполнить шаги для выбора типа метаданного в форме "Выбор типа данных"
-
В последних версиях
Vanessa.ADD
реализована автоматическая генерация правильных шагов выбора метаданного на основе записи действий пользователя. -
Важно использовать правильную последовательность шагов, например, вместо созданных на старых версиях
Vanessa.ADD
# И я нажимаю кнопку выбора у поля "Реквизит1" Тогда открылось окно 'Выбор типа данных' И В форме "Выбор типа данных" в таблице "" я перехожу к строке: | '' | | 'Нужное метаданное' | И В форме "Выбор типа данных" в ТЧ "" я выбираю текущую строку
-
-
Не удается установить поле отбора
- Проблема - если пытаться установить поле отбора (колонка «поле») у динамического списка, используя шаг «И в таблице "Source" я разворачиваю строку:», то 1С почему-то не хочет выполнять этот шаг (не разворачивает ветку).
- Например: мне нужен отбор по Юр. или Физ.Лиц у контрагента.
- Решение-
- Можно просто установить текст в поле отбора:
- И в таблице "КомпоновщикНастроекПользовательскиеНастройкиЭлемент0Отбор" из выпадающего списка с именем "КомпоновщикНастроекПользовательскиеНастройкиЭлемент0ОтборЛевоеЗначение" я выбираю по строке 'Контрагент.Юр/Физлицо'
-
Можно в отчет аллюр передавать дополнительные данные для отображения в шаге?
Решение
Использовать шаг:
И Я подключаю файл '$instrumentsRoot/features/libraries/manually/setlabelsallure.feature' к шагу
ПлагинАллюра = Ванесса.Плагин("Аллюр2Отчет"); ПлагинАллюра.ДобавитьФайлКТекущемуШагу(ПутьКФайлу); ПлагинАллюра.ДобавитьJSONКТекущемуШагу(ТекстДляДобавления, ИмяФайла); ДобавитьXMLКТекущемуШагу(ТекстXML, Наименование);
Если необходимо прикрепить данные тогда:
ПлагинАллюра.ДобавитьДвоичныеДанныеКТекущемуШагу(...) ПлагинАллюра.ДобавитьТекстКТекущемуШагу(ТекстДляДобавления, ИмяФайла)