1с тип не определен тестируемоеприложение
Начиная с версии 8.3.3 платформы в модуле управляемой формы, модуле команды и общем модуле появилось ключевое слово ЭтотОбъект , которое ссылается на текущий контекст модуля. В более ранних версиях платформы ключевое слово ЭтотОбъект использовалось только в модуле объекта или в модуле обычной формы и ссылалось на текущий объект. С какой стати решили использовать то же слово для модулей вместо более благозвучных ЭтотМодуль и ЭтаФорма — непонятно. Оставим это на совести разработчиков. Нам же нужно разобраться с ошибкой.
Итак, если вы разработали управляемую форму на платформе 8.3.3 или выше и пытаетесь использовать ее на платформе 1С:Предприятие 8.2 или 8.3.2 и ниже, помните, что в них ключевого слова ЭтотОбъект нет! Поэтому вызов, подобный этому, будет генерировать ошибку:
Чтобы избавиться от ошибки, можно:
- Обновить платформу до версии 8.3.3 или выше (Если используется стандартная конфигурация, возможно, потребуется обновить еще и версию конфигурации. Если конфигурация самописная, возможно, потребуется тестирование всех модулей и форм с последующим проведением рефакторинга);
- Избавиться от использования ключевого слова ЭтотОбъект , проведя рефакторинг кода;
Добавить комментарий Отменить ответ
Рубрики
Свежие записи
- Функция ПолучитьСклоненияСтроки()
- Ошибка «Тип не определен (ФормаКлиентскогоПриложения)»
- Процедура ПодключитьОбработчикОповещения()
- Недопустимое значение параметра номер 1 ПодключитьОбработчикОжидания()
- Процедура ОтключитьОбработчикОжидания()
- Процедура ПодключитьОбработчикОжидания()
- Что такое Символы.ПС в 1с 8?
- Свойство Символы.* глобального контекста
- Процедура ПолучитьЗаголовокСистемы()
- Процедура УстановитьЗаголовокКлиентскогоПриложения()
Свежие комментарии
- Александр К. к записи Функция ЗначениеЗаполнено()
- Олег к записи Функция ЗначениеЗаполнено()
- Александр К. к записи Как преобразовать таблицу значений в структуру?
- Михаил к записи Как преобразовать таблицу значений в структуру?
- Александр К. к записи Как получить формат даты месяц год?
В данной статье будет рассмотрен новый механизм системы "1С:Предприятие 8" поддерживаемый начиная с платформы версии 8.3.
Механизм позволяет легко и быстро создавать различные сценарии тестирования, без необходимости написания сложных процедур и функций для имитации действий пользователя.
Начиная с версии 8.3 платформа позволяет записать действия пользователя (переход по интерфейсу, нажатие кнопок, ввод текста в поля ввода и т.п.) и сохранить все действия в XML файл для дальнейшего использования при тестировании. Основное назначение данного механизма - сценарное тестирование, но думаю, что при большом желании можно устроить нагрузочное тестирование или использовать механизм при оптимизации системы (анализ ожидания на блокировках, поиск дедлоков и т.п.). Ниже я более подробно опишу настройку тестов.
Я не буду переписывать информацию с сайта 1С, а сразу перейду к описанию настройки теста. Перед созданием теста необходимо записать действия пользователя, для чего необходимо з апустить предприятие в режиме записи действий пользователя из конфигуратора:
После чего в клиентском приложении станут доступны команды управления записью журнала.
При помощи данных команд можно начать/приостановить запись журнала, прервать запись (без сохранения) или прекратить запись с отображением XML текста содержащим информацию о пользовательских действиях, который потребуется для дальнейшей настройки.
В работе с обработкой сложностей не должно возникнуть, рекомендую установить флаг для генерирования кода подключения к клиенту и установить значение переключателя "Преобразовывать" в "Текст". Далее копируем XML текст в поле "Журнал действий пользователя", выполняем команду "Преобразовать" и в текстовом поле "Сценарий" появится программный код для запуска тестирования, который в дальнейшем нам понадобится. Ниже рассмотрю основную процедуру выполняющую подключение к клиенту и запуск теста, в моем случае процедура называется "ТестовыйСценарий_06_03_2014".
&НаКлиенте
Процедура ТестовыйСценарий_06_03_2014 ()
//Создание объекта "ТестовоеПриложение" при помощи которого будет выполняться
//подключение к клиенту тестирования.
//Параметры:
// ИмяКомпьютера - Имя или IP адрес компьютера на отором запущено приложение клиента тестирования.
// Порт - Порт по которому будет выполняться подключение к клиенту тестирования. По умолчанию 1538,
// если необходимо на одном компьютере запускать несколько клиентов, их нужно разнести по разным портам.
// ИдентификаторКлиента - Идентификатор веб-клиента.
ТестовоеПриложение = Новый ТестируемоеПриложение ();
//Далее выполняется попытка подключения к клиенту тестирования.
ВремяОкончанияОжидания = ТекущаяДата () + 60 ;
Подключен = Ложь;
ОписаниеОшибкиСоединения = "" ;
Пока Не ТекущаяДата () >= ВремяОкончанияОжидания Цикл
Попытка
ТестовоеПриложение . УстановитьСоединение ();
Подключен = Истина;
Прервать;
Исключение
ОписаниеОшибкиСоединения = ОписаниеОшибки ();
КонецПопытки;
КонецЦикла;
Если Не Подключен Тогда
ТестовоеПриложение = Неопределено;
Сообщить ( "Не смогли установить соединение! " + Символы . ПС + ОписаниеОшибкиСоединения );
Возврат;
КонецЕсли;
//Если подключение к клиенту тестирования прошло успешно, запускаются управляющие процедуры
//имитирующие пользовательские действия.
ОкноПриложенияОсновноеКнопкаКомандногоИнтерфейсаПриходнаяНакладнаяНажать ( ТестовоеПриложение );
ОкноПриложенияПриходнаяНакладнаяКнопкаСоздатьНажать ( ТестовоеПриложение );
ОкноПриложенияПриходнаяНакладнаяСозданиеПолеНоменклатураВыбрать ( ТестовоеПриложение );
ОкноПриложенияНоменклатураТаблицаСписокВыбрать ( ТестовоеПриложение );
ОкноПриложенияПриходнаяНакладнаяСозданиеКнопкаПровестиИЗакрытьНажать ( ТестовоеПриложение );
Далее, в самом простом варианте, необходимо создать новую обработку (не важно, внешняя или встроенная), добавить управляемую форму на которой разместить команду выполняющую процедуру подключения к клиенту и запуска тестового сценария.
&НаКлиенте
Процедура ТестовыйСценарий_06_03_2014 ()
//.
КонецПроцедуры
Обращаю внимание, что если во время теста вводились числа больше 999 (количество, суммы и т.п.) при преобразовании в XML платформа автоматически не удаляет разделитель групп (по умолчанию неразрывный пробел) и его необходимо удалить в самих процедурах!
Для выполнения тестового сценария, необходимо как минимум два клиентских приложения, запущенных в режиме менеджера тестирования и в режиме клиента тестирования соответственно . Есть два варианта запуска приложений:
1. В параметрах конфигуратора (Сервис - Параметры) перейти на закладку "Запуск 1С:Предприятия", раскрыть вкладку "Дополнительно", в группе "Автоматизированное тестирование" выбрать необходимы режим запуска. Т.е. вручную запустить менеджер тестирования и необходимо количество клиентов, перед каждым запуском нужно выбрать необходимый режим и для клиентов указать различные порты (если клиент один, оставить порт по умолчанию).
2. Автоматически запускать менеджера и клиентов тестирования используя ключи "/TESTMANAGER" и "/TESTCLIENT" соответственно . Ниже приведен пример программного кода 1С для файлового варианта (необходимо изменить версию платформы, путь до информационной базы и если запускается более одного клиента тестирования указать порт).
ЗапуститьСистему ( "C:\Program Files (x86)\1cv8\\bin\1cv8.exe ENTERPRISE /F /N Администратор / TESTMANAGER " );
ЗапуститьСистему ( "C:\Program Files (x86)\1cv8\\bin\1cv8.exe ENTERPRISE /F /N Администратор /TESTCLIENT [-TPort] " );
Все действия по настройке теста закончены, осталось на менеджере тестирования запустить выполнение обработки. После подключения к клиенту тестирования менеджер передаст на выполнение команды и в окне клиентского приложения будут эмулироваться все действия пользователя, записанные при создании журнала действий пользователя.
Ниже, привожу пример простого программного кода по работе с двумя клиентами тестирования:
&НаКлиенте
Процедура ТестовыйСценарий_06_03_2014 ()
ТестовоеПриложение1 = Новый ТестируемоеПриложение (); //Порт по умолчанию 1538
ТестовоеПриложение2 = Новый ТестируемоеПриложение (, 1539 );
ВремяОкончанияОжидания = ТекущаяДата () + 60 ;
Подключен = Ложь;
ОписаниеОшибкиСоединения = "" ;
//Подключение к первому клиенту тестирования
Пока Не ТекущаяДата () >= ВремяОкончанияОжидания Цикл
Попытка
ТестовоеПриложение1 . УстановитьСоединение ();
Подключен = Истина;
Прервать;
Исключение
ОписаниеОшибкиСоединения = ОписаниеОшибки ();
КонецПопытки;
КонецЦикла;
ВремяОкончанияОжидания = ТекущаяДата () + 60 ;
//Подключение ко второму клиенту тестирования
Пока Не ТекущаяДата () >= ВремяОкончанияОжидания Цикл
Попытка
ТестовоеПриложение2 . УстановитьСоединение ();
Подключен = Истина;
Прервать;
Исключение
ОписаниеОшибкиСоединения = ОписаниеОшибки ();
КонецПопытки;
КонецЦикла;
Если Не Подключен Тогда
ТестовоеПриложение1 = Неопределено;
ТестовоеПриложение2 = Неопределено;
Сообщить ( "Не смогли установить соединение! " + Символы . ПС + ОписаниеОшибкиСоединения );
Возврат;
КонецЕсли;
//Для каждого клиента скопируем процедуры тестирования.
ОкноПриложенияОсновноеКнопкаКомандногоИнтерфейсаПриходнаяНакладнаяНажать1 ( ТестовоеПриложение1 );
ОкноПриложенияОсновноеКнопкаКомандногоИнтерфейсаПриходнаяНакладнаяНажать2 ( ТестовоеПриложение2 );
ОкноПриложенияПриходнаяНакладнаяКнопкаСоздатьНажать1 ( ТестовоеПриложение1 );
ОкноПриложенияПриходнаяНакладнаяКнопкаСоздатьНажать2 ( ТестовоеПриложение2 );
ОкноПриложенияПриходнаяНакладнаяСозданиеПолеНоменклатураВыбрать1 ( ТестовоеПриложение1 );
ОкноПриложенияПриходнаяНакладнаяСозданиеПолеНоменклатураВыбрать2 ( ТестовоеПриложение2 );
ОкноПриложенияНоменклатураТаблицаСписокВыбрать1 ( ТестовоеПриложение1 );
ОкноПриложенияНоменклатураТаблицаСписокВыбрать2 ( ТестовоеПриложение2 );
ОкноПриложенияПриходнаяНакладнаяСозданиеКнопкаПровестиИЗакрытьНажать1 ( ТестовоеПриложение1 );
ОкноПриложенияПриходнаяНакладнаяСозданиеКнопкаПровестиИЗакрытьНажать2 ( ТестовоеПриложение2 );
В результате выполнения данной процедуры менеджер тестирования подключается ко всем инициализированным клиентам тестирования и параллельно запускает на них выполнение теста.
Я вижу следующие варианты использования данного механизма:
1. Вы сотрудник службы технической поддержки и при появлении у пользователя сложной проблемы Вы хотите посмотреть, что именно пользователь выполняет в системе.
Для решения подобной задачи, можно создать bat-файл для запуска системы в режиме клиента тестирования и использовать методы тестового приложения "НачатьЗаписьЖурналаДействийПользователя" и "ЗавершитьЗаписьЖурналаДействийПользователя" для получения журнала. Ниже привожу пример программного кода:
&НаКлиенте
Процедура Запустить ( Команда )
ТестовоеПриложение = Новый ТестируемоеПриложение ();
ВремяОкончанияОжидания = ТекущаяДата () + 60 ;
Подключен = Ложь;
ОписаниеОшибкиСоединения = "" ;
Пока Не ТекущаяДата () >= ВремяОкончанияОжидания Цикл
Попытка
ТестовоеПриложение . УстановитьСоединение ();
Подключен = Истина;
Прервать;
Исключение
ОписаниеОшибкиСоединения = ОписаниеОшибки ();
КонецПопытки;
КонецЦикла;
Если Не Подключен Тогда
ТестовоеПриложение = Неопределено;
Сообщить ( "Не смогли установить соединение! " + Символы . ПС + ОписаниеОшибкиСоединения );
Возврат;
КонецЕсли;
В результате получится XML текст, который в дальнейшем может быть преобразован в обработку для повторения ошибки пользователя. После исправления ошибки данную обработку можно использовать для тестирования.
2. Не для кого не секрет, что при разработке новых возможностей системы зачастую появляются ошибки в ранее разработанном функционале. Для полноценного тестирования можно заранее создавать тестовые сценарии исправного функционала и выполнять их перед выпуском новых релизов.
3. Для разрешения проблем ожиданий на блокировках или дедлоков. Можно создать несколько тестов, которые явно приведут к проблеме производительности для дальнейшего расследования.
4. Проведение нагрузочного тестирования. Фирма 1С позиционирует функционал как механизм сценарного тестирования, но по большому счету не запрещает запускать большое количество клиентов тестирования. В обработчики можно вставить генераторы случайных чисел для разнородности вводимой информации. На момент написания статьи, мне не известны примеры подобного нагрузочного тестирования, при получении новой информации я обновлю публикацию.
Рассмотренный в статье механизм может существенно облегчить процесс разработки и тестирования бизнес приложений на базе платформы "1С:Предприятие 8", но на момент написания статьи я рекомендую использовать его в ознакомительных целях, т.к. механизм довольно новый и возможно, еще не до конца отлажен разработчиками.
Все комментарии и дополнения по тексту статьи я с радостью жду в комментариях!
Обновление отчетов и обработок должно работать на конфигурациях с БП 3.0.
Запуск обработки надо настраивать для конкретной задачи.
Введение
Не нашел ни одного рабочего примера Автоматизированного тестирования 1С.
Такого, чтобы взять и запустить. Попадаются либо фрагменты кода с объяснениями, либо конфигурации которые надо изучать.Решил поделиться рабочим примером, который сам использую. Для реального использования надо только настроить под себя: прописать пути, имена и т.п..
Автоматизированное или автоматическое?
Технология (инструментарий) 1С называется “Автомати зированн ое тестирование”, а в названии статьи используется слово “Автомати ческ ое” в смысле без участия человека. Более точное название статьи было бы “Автоматическое тестирование … с помощью Автоматизированного тестирования 1С”
Автоматизированное тестирование 1C
Автоматизированное тестирование (АТ 1С) - инструмент 1С для имитации интерактивных действий пользователя. В АТ 1С всегда участвуют два клиентских приложения. Одно приложение выполняет роль менеджера тестирования , второе приложение выполняет роль клиента тестирования .
Сам процесс такой: Менеджер запускает клиента и подключается к нему (примерно как по Com-соединению). Для управления клиентом используется набор объектов. Этот набор недоступен при стандартном запуске.
Предыстория
По требованиям пользователей опубликованная на Инфостарте обработка постепенно расширила свою область использования. В результате, при внесении любых изменений приходится проверять работу в четырех конфигурациях. Минимальная проверка заключается в запуске обработки.Было решено автоматизировать процесс.
На первый взгляд, просто в запуске обработки нет никакого тестирования.
Но обработка сделанная в УТ 11.4 может не пройти проверку синтаксиса в УТ 11.2. Например, из-за использования различных версий БСП В УТ 11.4 и УТ 11.2.
Создание ИБ - менеджера тестирования
Конфигурация состоит из единственного модуля - модуля приложения. Также надо установить одно свойство конфигурации и режим запуска ИБ.
- Создаем пустую информационную базу, назовем к примеру ТестМенеджер
- В свойствах конфигурации устанавливаем режим использования модальности
- Берем код под спойлером и копируем его в Модуль приложения
- Устанавливаем флаг
Сервис => Параметры => Запуск 1С:Предприятия => Дополнительно => Автоматизированное тестирование => Запускать как менеджер тестирования
.
ИБ ТестМенеджер готова. Остается настроить параметры тестирования (пути к файлам, имена и т.п) для своих нужд.
Запуск конфигурации
При запуске получаем окно для выбора теста:
Состав теста
Тест состоит из 3 шагов:
- Шаг 1 .Обновление отчета или обработки в справочнике Дополнительные отчеты и обработки
- Шаг 2 .Запуск отчета или обработки
Вызывается процедура ЗапускОбработки(). Код процедуры создается вручную с учетом конкретного отчета или обработки.
Шаг можно отключить - Шаг 3 .Закрытие приложения после теста
Шаг можно отключить
Настройка параметров теста
Параметры тестов задаются в функции ПолучитьМассивВсехТестов().
Каждый тест представлен структурой со следующими ключами:
- ПредставлениеВСпискеВопроса
- Наименование теста
- “УТ 11.4”
- Путь к исполняемому файлу 1С
- "C:\Program Files (x86)\1cv8\8.3.16.1224\bin\1cv8.exe"
- Путь к папке ИБ
- "D:\1SBases\Демо УТ 11.4"
- Пользователь ИБ
- “Администратор (ОрловАВ)";
- Пароль пользователя ИБ
- Наименование отчета или обработки как в справочнике Дополнительные отчеты и обработки
- “Печать договоров по шаблонам”. Может содержать знаки подстановки "*" и "?"
- Путь к файлу обработки
- "D:\ПечатьДоговоровПоШаблонам\20200430 ПечатьДоговоровПоШаблонам_УТ_КА_ERP.epf");
- Флаг запуска Процедуры ЗапускОбработки (флаг шага 2 теста)
- Ложь
- Навигационная ссылка на объект, из формы которого запускается отчет или обработки
- "e1cib/data/Справочник.ДоговорыКонтрагентов?ref=af8f0015e9b8c48d11e0e504cc1e1aca"
Как получить ссылку:
- НаименованиеОбъектаНазначения
- Заголовок объекта назначения Может содержать знаки подстановки "*" и "?"
- "Договор продажи - ТД-890 от 01.04.2015"
- Флаг закрытия приложения (флаг шага 3 теста)
- Ложь
- Задает таймаут после закрытия в секундах.
Не нашел способа определить, что закрытие приложения завершилось. Сделано просто паузой. Без паузы возникают сбои - 20
- Приложение запускается с ключом /UILOGRECORDER
- Истина
Получим кнопки в окне приложения:
Инструменты для создания кода Автоматизированного тестирования 1С
Нам понадобятся два инструмента.
Первый инструмент - создание журнала действий пользователя уже есть в платформе.
Второй инструмент - обработку для создания кода надо скачать с ИТС.- Создаем журнал действий пользователя. Для этого открываем конфигуратор клиента тестирования (например УТ 11.4) и запускаем:
в запущенном приложении увидим кнопки для записи журнала:
Запишем нужный фрагмент действий и получим XML текст, который надо где-то сохранить. - Теперь нам надо скачать с ИТС обработку UILogToScript для преобразования журнала действий (XML текст) в код программы 1С. К сожалению, обработка UILogToScript отрабатывает не все ситуации. Например диалог открытия файла не поддерживается, обработка выдает ошибку. Но это не критично, потому что можно поискать решение в Интернете или сделать самому по аналогии.
Надо сказать, что при небольшом опыте работы можно обходиться без обработки UILogToScript.
Поддержка совместимости
Поддержка совместимости - непростая задача.
- Пример 1. Рассмотрим форму дополнительной обработки в В УТ 11.2 2.94 (БСП 2.1.2.86
:
А вот форма дополнительной обработки в УТ11.4.11.88 (БСП 3.0.3.223):
Видим, что заголовок нужной нам кнопки другой, А ведь в клиенте тестирования поиск объектов (элементов интерфейса) идет именно по заголовкам. В коде, который приведен в данной статье сделано просто: Если кнопка “Обновить из файла” не найдена, ищется кнопка “Загрузить из файла” - Пример 2. Предупреждения безопасности при загрузке файла внешней обработки. В Платформе 8.3.16 выдается вопрос подтверждения, нажимаешь Продолжить и все.
- В каких-то версиях платформы был вопрос подтверждения, а затем надо было повторно нажать кнопку “Обновить из файла”.
- Пример 3. Закрытие окна тестируемого приложения. Здесь тоже диалог закрытия зависит от версии платформы
Резюме: Универсальный тест для различных версий платформ и конфигураций сделать невозможно, но под свои задачи вполне доступно реализовать.
Диалоги безопасности
При написании кода теста пришлось учитывать вариативность предупреждений безопасности.
Вот описание действий пользователя для загрузки файла обработки в УТ 11.2. Конфигурация использует БСП 2.3- Вариант 1. Файл загружается впервые
- Нажатие кнопки Загрузить из файла
- Диалог Выбор файла
- Окно диалога:: Предупреждение безопасности
- Нажатие кнопки Да
- Нажатие кнопки Ок
- Диалог Выбор файла
- Нажатие кнопки Загрузить из файла
- Диалог Выбор файла
- Окно диалога:: Необходимо перезакрыть окна
- Нажатие кнопки Ок
Немного итогов
Создание автоматического теста с помощью Автоматизированного тестирования 1С задача трудоемкая, Но результат оправдывает себя.
": Ошибка компиляции при вычислении выражения или выполнении фрагмента кода Выполнить(""тестовоеПриложение = Новый ТестируемоеПриложение(, XMLСтрока(Порт));""); по причине: : Тип не определен (ТестируемоеПриложение) тестовоеПриложение = Новый >ТестируемоеПриложение(, XMLСтрока(Порт));"
На память не помню. Там в настройках надо галку поставить. То ли «менеджер тестирования» то ли ещё как. В доке есть. должно быть.
Вообще странно, если из Выполнить это перенести в код модуля, сохраняется без ошибок, но ругается на это уже при загрузке теста.
Клиент тестирования запускается по windows аутентификации а подключиться к нему пытается под пользователем ТестИмя12 которого оно само создало в базе, причём вообще без прав.
После трёх часов плясок с бубном с перерывом на завтрак у меня таки получилось запустить автоматически созданный тест интерфейса, который открывает справочник Должности в ЗУП КОРП.
И самое главное, при создании строки подключения нужно добавить ключ /WA- чтобы отключить аутентификацию операционной системы когда она используется и вставить пробел перед /P чтобы пароль брался из строки запуска.
Иначе тесты начинают выполняться пока открыто окно ввода имени пользователя и пароля.@VladFrost А, вон оно чо. Действительно, посмотрел - она там создаёт пользователя по данным макета.
Наверное ролей можно в макет добавить чтобы запускалось под ним.
Да, роли можно добавить. Но если речь про типовую конфигурацию, то там у пользователя может быть очень много ролей. Замучаешься их добавлять, и потом поддерживать актуальность.
xUnitFor1C это Unit тесты (tdd)
vanessa-behavior это тесты поведения (bdd)Разная парадигма. Но и то, и другое тесты (проверка)
@agaltsoff прелесть bdd заключается в том, что алгоритм тестирования описывается неким dsl (gherkin), понятным непрограммистам
И вообще, в целом, bdd ориентирована на тестирование поведения (интерфейса), а tdd, как я понимаю(!), на тесты кода.
@agaltsoff если рассматривать именно UI тестирование, то в VB относительно xUnitFor1C есть уже готовая библиотека шагов - нажатие кнопок, открытие форм, получение данных с формы и ее заполнение, работа с отчетами и т.д.
Как я сейчас вижу техническую сторону vanessa-behaviour и xUnitFor1C:
Vanessa-behavior поставил, написал простейший feature, загрузил из него сценарий, из сценария создал epf для шагов, которые нужно наполнять кодом.
В xUnitFor1C есть шаблон обработки в которой создаются тесты которые потом загружаются и выполняются.по VB есть несколько вебинаров на инфостарте, плюс ютуб-канал, где публикуются автоинструкции. рекомендую посмотреть их
Да, я смотрел один про инструментарий счастливого одинэсника, правда довольно давно, наверное когда он только вышел.
Посмотрю ещё что у вас там есть.
Похоже, если xUnitFor1C пройдёт этот путь с DSL-кодом, то на выходе получится ещё одна Vanessa-Behavior )
Хотя довольно забавная штука. В своё время очень понравилось Alistar Cockburn, Writing Effective Usecases, чем-то напоминает.
аналитики их должны писать в первую очередь. это ж спецификация
Возможно и смогут, скриншот feature по крайней мере их не напугал. Только спросили почему фон чёрный)
База тестовая. Ну и как бы история тянется ещё с Functest Фёдора, так что я как бы надеюсь)
эх, есть ведь еще люди, которые помнят нашу работу :)
Похоже, если xUnitFor1C пройдёт этот путь с DSL-кодом, то на выходе получится ещё одна Vanessa-Behavior )
Нет, оба инструмента будут рядом и пользоваться совместным кодом
Вот кстати вопрос: на сервере сборки типа Jenkins тесты форм xUnitFor1C технически могут выполняться?
Сейчас добавил это свой простейший тест. Вроде прошло без ошибок. Правда параметр /TESTMANAGER надо добавить.
на Вики проекта есть спец.статьи по запуску продукта через ком.строку
Там один нюанс есть с allure. Для него нужно указывать каталог исходных данных в каталоге workspace. Иначе он запускается без указания каталога откуда брать данные и их не видит и отчёт пустой.
Тогда в настройке allure Results path надо указать allure-results, в Advanced Report path - allure-report.
Вот кстати вопрос: на сервере сборки типа Jenkins тесты форм xUnitFor1C технически могут выполняться?
Здесь может подстерегать неожиданный сюрприз: если запускать тестменеджер неинтерактивно, он тогда некоторые поля не может найти на форме :trollface:
@agaltsoff Дымовой тест на открытие формы вполне успешно работает. Даже несколько раз "спас" от корявых ручек
Соответственно, нужно ставить галку "Разрешить взаимодействие с рабочим столом" в свойствах службы Jenkins
Соответственно, нужно ставить галку "Разрешить взаимодействие с рабочим столом" в свойствах службы Jenkins
єто не всегда помогает.
Похоже, если xUnitFor1C пройдёт этот путь с DSL-кодом, то на выходе получится ещё одна Vanessa-Behavior
Во-первых, есть кейсы, где это удобно. Например, куча старого гуано кода, который тестами покрыть надо (сделать "обвязку"/"лесА" перед внесением изменений, чтобы потом убедиться в отсутствии регрессий), то писать на геркине это не удобно: нужно писать сценарий, а потом к нему писать реализацию (библиотечные шаги как бы помогают, но как бы не совсем).
Во-вторых, геркин-сценарии отлаживать сложнее. Поэтому в конкретном кейсе, когда мне не нужна "человекопонятность" сценариев, я предпочту писать сценарии в конфигураторе, с отладчиком и за один проход, а не "сначала сценарий - потом реализация шагов".
В-третьих, при всем уважении к ребятам, разрабатывающим, я придерживаюсь мнения, что если сценарии писать для конечных пользователей, то десятков шагов "я нажимаю туда-то" не должно быть, т.к. такие шаги привязывают сценарий к конкретному интерфейсному решению, а в большинстве случаев это плохо, сценарий не должен навязывать решение. Я уже про это и свое отношение к тэгу tree говорил.
А вот подобный DSL применительно к Ванессе позволил бы писать реализацию шагов в терминах "я кликаю то-то", убирая из сценария привязку к конкретному интерфейсному решению.
Ошибка «Тип не определен» говорит об устаревшей платформе. В конфигурации используются более современные объект, чем присутствуют в платформе.
Либо контекст, который не позволяет использования данного объекта: запуск под другим типом клиента, а также банальная опечатка в имени типа.
В данном конкретном случае таким объектом является «ЗаписьJSON», которая появилась не так давно в версии 8.3 платформы 1С.
Полный текст ошибки
Тип не определен (ЗаписьJSON)
ЗаписьJSON = Новый >ЗаписьJSON;Особенности проблемы:
Платформа позволяет использовать в конфигурации новые объекты, даже если в конфигурации установлен режим совместимости со старой версией.
Если же объектами являются объекты метаданных (к примеру, такие как Web-сервисы), то изменить такую конфигурацию не возможно (хотя она будет работать без данных объектов, не вызывая ошибок)
На скриншоте ниже: с версией 8.2
Другие причины проблемы:
Возможно новая платформа установлена, но запускается старая
для этого зайдите в свойства базы («Изменить» в списке запуска:) — нижнее поле «Версия 1С:Предприятия»
Либо указана устаревшая «версия» платформы (кнопка «Настройка» в списке баз) — раздел «Используемые версии»
Поведение системы
В большинстве случаев «тип не определен» это критичная ошибка, которая возникает:
- в момент запуска самой 1С, при этом полностью блокирует запуск.
- при запуске форм списка или форм объектов — блокирует запуск этого или ряда объектов.
Обычно не связана с правами пользователя и со средой исполнения, если это не com/activex-объекты.
Часто вызывающие ошибку объекты:
Клиент получает ту рекламу, которую он заслуживает!
— Дэвид ОгилвиЧитайте также:
- Окно диалога:: Предупреждение безопасности
- Диалог Выбор файла
- Нажатие кнопки Загрузить из файла