Регистрация тестовых методов
Введение
Для того чтобы тестовые сценарии (методы) были обнаружены и корректно выполнены движком тестирования, разработчику необходимо зарегистрировать их. Регистрация сообщает движку, какие тесты существуют в модуле, как их запускать, с какими параметрами и в каких контекстах.
Регистрация выполняется внутри предопределённой экспортной процедуры ИсполняемыеСценарии
, которая обязательно должна находиться в каждом тестовом модуле. В этой процедуре перечисляются все доступные тесты данного модуля.
В процедуре ИсполняемыеСценарии
не следует создавать тестовые данные или выполнять инициализацию окружения — она предназначена исключительно для регистрации тестов.
// Экспортная процедура регистрации тестов
Процедура ИсполняемыеСценарии() Экспорт
// Регистрация тестов через модуль регистратор
ЮТТесты
// Группа математических методов
.ДобавитьТестовыйНабор("Математические методы") // Создаём набор тестов
.ДобавитьТест("Сложение") // Регистрируем тест: имя экспортной процедуры совпадает с именем теста
.ДобавитьТест("Вычитание", "Разность чисел") // Можно указать отображаемое имя теста
.ДобавитьТест("Вычитание", , , "Сервер") // Тест выполняется только в серверном контексте
.ДобавитьКлиентскийТест("УмножениеНаКлиенте") // Тест выполняется только на клиенте
.ДобавитьСерверныйТест("ДелениеНаСервере", "Деление на сервер") // Тест выполняется только на сервере
// Группа строковых методов
.ДобавитьТестовыйНабор("Строковые методы")
.ДобавитьТест("ТестСтрНайти") // Тест поиска подстроки
.ДобавитьТест("ТестСтрРазделить"); // Тест разделения строки
КонецПроцедуры
// Пример тестовой процедуры
Процедура Сложение() Экспорт
// Тест сложения
КонецПроцедуры
В процедуре ИсполняемыеСценарии
перечисляются все доступные тесты этого модуля.
Эта процедура вызывается движком для каждого тестового модуля при загрузке тестов, задолго до исполнения самих тестов.
Регистрация и настройка тестов выполняется через методы модуля ЮТТесты
, который позволяет:
- Зарегистрировать тесты, с возможностью выбрать контексты исполнения:
ДобавитьТест
- Тест выполняется во всех контекстах тестового модуляДобавитьКлиентскийТест
- Тест выполняется на клиентеДобавитьСерверныйТест
- Тест выполняется на сервере
ДобавитьТестовыйНабор
позволяет сгруппировать тесты в наборы- Настроить параметры исполнения теста
- Очистка данных, перед использованием изучите документацию
- Выполнение
ВТранзакции
- Тест выполняется в транзакции - Удаление тестовых данных (
УдалениеТестовыхДанных
) - Данные созданные тестом будут удалены (если они создаются с помощью API движка -ЮТест.Данные()
) вне зависимости от транзакции
- Выполнение
СПараметрами
- Тестовый метод будет вызван с указанными параметрами
- Очистка данных, перед использованием изучите документацию
- Настройка обработчиков событий
Основные методы регистрации тестов
ДобавитьТестовыйНабор
Создаёт и регистрирует новый тестовый набор, в который будут добавляться последующие тесты.
ЮТТесты.ДобавитьТестовыйНабор(Имя, ТегиСтрокой = "")
Параметр | Тип | Обязательный | Описание | По умолчанию |
---|---|---|---|---|
Имя | Строка | ✓ | Имя набора тестов | — |
ТегиСтрокой | Строка | Теги через запятую | "" |
Примеры:
// Простой набор
ЮТТесты
.ДобавитьТестовыйНабор("Документы");
// Набор с тегами
ЮТТесты
.ДобавитьТестовыйНабор("Проведение", "Критичный,Документы");
// Группировка с обработчиком
ЮТТесты
.ДобавитьТестовыйНабор("Проведение")
.Тег("Документы")
.Перед("Подготовка")
.ДобавитьТест("ПроведениеДокумента")
.ДобавитьТест("ОтменаПроведения");
ДобавитьТест
Регистрирует тест, исполняемый во всех контекстах, где доступен модуль.
ЮТТесты.ДобавитьТест(ИмяТестовогоМетода, ПредставлениеТеста = "", ТегиСтрокой = "", Контексты = Неопределено)
Параметр | Тип | Обязательный | Описание | По умолчанию |
---|---|---|---|---|
ИмяТестовогоМетода | Строка | ✓ | Имя экспортного метода | — |
ПредставлениеТеста | Строка | Отображаемое имя | "" | |
ТегиСтрокой | Строка | Теги через запятую | "" | |
Контексты | Строка | Контексты исполнения (например, "Сервер"). Доступные контексты: КлиентОбычноеПриложение , КлиентУправляемоеПриложение , Сервер | Неопределено |
Примеры:
// Обычный тест
ЮТТесты
.ДобавитьТест("Сложение");
// С представлением и тегами
ЮТТесты
.ДобавитьТест("Вычитание", "Проверка вычитания", "Математика,Критичный");
// Только для сервера
ЮТТесты
.ДобавитьТест("Проведение", , , "Сервер");
// С обработчиками и параметрами
ЮТТесты
.ДобавитьТест("ПроверкаПараметров")
.Перед("Подготовка")
.После("Очистка")
.СПараметрами(10, "abc");
ДобавитьКлиентскийТест
Регистрирует тест, исполняемый только на клиенте (КлиентОбычноеПриложение
или КлиентУправляемоеПриложение
).
ЮТТесты.ДобавитьКлиентскийТест(ИмяТестовогоМетода, ПредставлениеТеста = "", Теги = "")
Параметр | Тип | Обязательный | Описание | По умолчанию |
---|---|---|---|---|
ИмяТестовогоМетода | Строка | ✓ | Имя экспортного метода | — |
ПредставлениеТеста | Строка | Отображаемое имя | "" | |
Теги | Строка | Теги через запятую | "" |
Примеры:
// Простой клиентский тест
ЮТТесты
.ДобавитьКлиентскийТест("ПроверкаФормы");
// С параметрами
ЮТТесты
.ДобавитьКлиентскийТест("ПроверкаФормы", "Номенклатура. Проверка формы элемента", "Номенклатура, ФормыОбъекта")
.СПараметрами("Справочник.Номенклатура.Форма.ФормаОбъекта");
// С обработчиком
ЮТТесты
.ДобавитьКлиентскийТест("ПроверкаФормы")
.Перед("ПодготовкаКлиента");
ДобавитьСерверныйТест
Регистрирует тест, исполняемый только на сервере.
ЮТТесты.ДобавитьСерверныйТест(ИмяТестовогоМетода, ПредставлениеТеста = "", ТегиСтрокой = "")
Параметр | Тип | Обязательный | Описание | По умолчанию |
---|---|---|---|---|
ИмяТестовогоМетода | Строка | ✓ | Имя экспортного метода | — |
ПредставлениеТеста | Строка | Отображаемое имя | "" | |
ТегиСтрокой | Строка | Теги через запятую | "" |
Примеры:
// Простой серверный тест
ЮТТесты
.ДобавитьСерверныйТест("ПроведениеДокумента");
// С параметрами
ЮТТесты
.ДобавитьСерверныйТест("ПроведениеДокумента", "Проведение ПКО", "ПКО, Проведение")
.СПараметрами("ПКО");
// С обработчиком
ЮТТесты
.ДобавитьСерверныйТест("ПроведениеДокумента")
.После("ОчисткаСервера");
Параметризированные тесты
СПараметрами
Позволяет зарегистрировать тест с параметрами (до 10 параметров).
ЮТТесты.ДобавитьТест("Имя").СПараметрами(1, 2)
Параметр | Тип | Описание |
---|---|---|
Параметр1..Параметр10 | Произвольный. Должен быть сериализуемым | Параметры, с которыми будет вызван тест |
Примеры:
// Один параметр
ЮТТесты
.ДобавитьТест("ПроверкаПараметра")
.СПараметрами(10);
// Несколько параметров
ЮТТесты
.ДобавитьТест("ПроверкаПараметров")
.СПараметрами(10, "abc", Истина);
// Несколько тестов
ЮТТесты
.ДобавитьТест("ПроверкаПараметров")
.СПараметрами(10, "abc", Истина)
.СПараметрами(10, "abc", Ложь);
Для каждого набора параметров можно установить свои настройки.
ЮТТесты
.ДобавитьТест("ОткрытиеФормы")
// Настройки для всех вариантов теста
.Тег("Номенклатура")
.УдалениеТестовыхДанных(Истина)
.СПараметрами("Справочник.Номенклатура", "ФормаОбъекта")
// Настройки для формы объекта
.Представление("Номенклатура. Проверка открытия формы элемента")
.Тег("ФормаОбъекта")
.СПараметрами("Справочник.Номенклатура", "ФормаГруппы")
// Настройки для формы группы
.Представление("Номенклатура. Проверка открытия формы группы")
.Тег("ФормаГруппы")
.СПараметрами("Справочник.Номенклатура", "ФормаСписка")
// Настройки для формы списка
.Представление("Номенклатура. Проверка открытия формы списка")
.Тег("ФормаСписка")
.УдалениеТестовыхДанных(Ложь)
;
Тоже самое относится и к методам ниже
СПараметрамиНаКлиенте
Позволяет зарегистрировать тест с параметрами, исполняемый на клиенте.
ЮТТесты.ДобавитьТест("Имя").СПараметрамиНаКлиенте("a", "b")
Параметр | Тип | Описание |
---|---|---|
Параметр1..Параметр10 | Произвольный. Должен быть сериализуемым | Параметры, с которыми будет вызван тест |
Примеры:
// Один параметр
ЮТТесты
.ДобавитьТест("ПроверкаФормы")
.СПараметрамиНаКлиенте("Параметр1");
// Несколько параметров
ЮТТесты
.ДобавитьТест("ПроверкаФормы")
.СПараметрамиНаКлиенте("Параметр1", 123, Истина);
// Регистрация в разных контекстах
ЮТТесты
.ДобавитьТест("ПроверкаПараметров")
.СПараметрамиНаКлиенте("Параметр1", 123, Истина)
.СПараметрамиНаСервере("Параметр1", 123, Ложь)
;
СПараметрамиНаСервере
Позволяет зарегистрировать тест с параметрами, исполняемый на сервере.
ЮТТесты.ДобавитьТест("Имя").СПараметрамиНаСервере("x", "y")
Параметр | Тип | Описание |
---|---|---|
Параметр1..Параметр10 | Произвольный. Должен быть сериализуемым | Параметры, с которыми будет вызван тест |
Примеры:
// Один параметр
ЮТТесты
.ДобавитьТест("ПроведениеДокумента")
.СПараметрамиНаСервере("Документ1");
// Несколько параметров
ЮТТесты
.ДобавитьТест("ПроведениеДокумента")
.СПараметрамиНаСервере("Документ1", 2024, Ложь);
// Регистрация в разных контекстах
ЮТТесты
.ДобавитьТест("ПроверкаПараметров")
.СПараметрамиНаКлиенте("Параметр1", 123, Истина)
.СПараметрамиНаСервере("Параметр1", 123, Ложь)
;
Методы настройки тестов
Тег
Добавляет тег к тесту, набору или модулю.
ЮТТесты.Тег("Критичный")
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
ИмяТега | Строка | ✓ | Имя тега |
Примеры:
// Добавить тег к модулю (всем тестам модуля)
ЮТТесты
.Тег("Критичный")
.ДобавитьТест("ПроверкаОшибки");
// Добавить несколько тегов к набору
ЮТТесты
.ДобавитьТестовыйНабор("Проведение")
.Тег("Документы")
.Тег("Критичный");
ВТранзакции
Указывает, что тест должен выполняться в транзакции. Применяется только если доступно использование транзакции (Сервер, Толстый клиент (управляемое приложение), Толстый клиент (обычное приложение)).
ЮТТесты.ВТранзакции(Истина)
Параметр | Тип | Обязательный | Описание | По умолчанию |
---|---|---|---|---|
ВТранзакции | Булево | Выполнять тест в транзакции | Истина |
Примеры:
// Тест в транзакции
ЮТТесты
.ДобавитьТест("Сложение")
.ВТранзакции();
// Все тесты в транзакции по умолчанию
ЮТТесты
.ВТранзакции()
.ДобавитьТест("Сложение")
.ДобавитьТест("Вычитание")
.ДобавитьТест("Деление").ВТранзакции(Ложь) // А этот тест без транзакции
;
// Явно отключить транзакцию
ЮТТесты
.ДобавитьТест("Сложение")
.ВТранзакции(Ложь);
УдалениеТестовыхДанных
Включает автоматическое удаление тестовых данных после выполнения теста, механизм доступен на клиенте и сервере.
ЮТТесты.УдалениеТестовыхДанных(Истина)
Параметр | Тип | Обязательный | Описание | По умолчанию |
---|---|---|---|---|
УдалятьТестовыеДанные | Булево | Включить автоматическое удаление данных | Истина |
Примеры:
// Включить удаление
ЮТТесты
.ДобавитьТест("СозданиеДокумента")
.УдалениеТестовыхДанных();
// Отключить удаление
ЮТТесты
.ДобавитьТест("СозданиеДокумента")
.УдалениеТестовыхДанных(Ложь);
// Для всех тестов модуля
ЮТТесты
.УдалениеТестовыхДанных()
.ДобавитьТест("СозданиеДокумента");
Перед
Указывает обработчик, который будет выполнен перед тестом, набором или всем тестами/наборами модуля.
ЮТТесты.Перед("Подготовка")
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
ИмяМетода | Строка | ✓ | Имя метода-обработчика, выполняемого до |
Примеры:
// Перед тестом
ЮТТесты
.ДобавитьТест("Проверка")
.Перед("Подготовка");
// Перед набором
ЮТТесты
.ДобавитьТестовыйНабор("Проведение")
.Перед("ПодготовкаНабора");
// Перед всеми тестами (наборами) модуля
ЮТТесты
.Перед("ПодготовкаДанных")
.ДобавитьТестовыйНабор("Проведение")
.ДобавитьТест("Проверка")
.ДобавитьТест("Проведение");
После
Указывает обработчик, который будет выполнен после теста, набора или всех тестов/наборов модуля.
ЮТТесты.После("Очистка")
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
ИмяМетода | Строка | ✓ | Имя метода-обработчика, выполняемого после |
Примеры:
// После теста
ЮТТесты
.ДобавитьТест("Проверка")
.После("Очистка");
// После набора
ЮТТесты
.ДобавитьТестовыйНабор("Проведение")
.После("ОчисткаНабора");
// После всех тестов (наборов) модуля
ЮТТесты
.После("ОчисткаДанных")
.ДобавитьТестовыйНабор("Проведение")
.ДобавитьТест("Проверка")
.ДобавитьТест("Проведение");
Представление
Устанавливает отображаемое имя теста или набора.
ЮТТесты.Представление("Проверка создания", Истина)
Параметр | Тип | Обязательный | Описание | По умолчанию |
---|---|---|---|---|
Имя | Строка | ✓ | Отображаемое имя | — |
ИспользуяИмя | Булево | Необходимо ли использовать имя объекта (теста/набора) при формировании представления. | Ложь |
Примеры:
// Для теста
ЮТТесты
.ДобавитьТест("Проверка")
.Представление("Проверка создания") // Представление: "Проверка создания"
.ДобавитьТест("Проведение")
.Представление("Проверка документа ПКО", Истина) // Представление: "Проведение. Проверка документа ПКО"
;
// Для набора
ЮТТесты
.ДобавитьТестовыйНабор("Проведение")
.Представление("Проведение документов");
ЗависитОт
Позволяет указать зависимости тестов (например, файлы, фабрики XDTO и т.д.).
ЮТТесты.ЗависитОт().ФайлыПроекта("fixtures/data.json").ФабрикаXDTO("fixtures/schemas")
Примеры:
// Зависимость от файла
ЮТТесты
.ДобавитьТест("Проверка")
.ЗависитОт().ФайлыПроекта("fixtures/data.json");
// Зависимость от фабрики XDTO
ЮТТесты
.ДобавитьТест("Проверка")
.ЗависитОт().ФабрикаXDTO("fixtures/schemas");
// Несколько зависимостей
ЮТТесты
.ДобавитьТест("Проверка")
.ЗависитОт().ФайлыПроекта("fixtures/data.json")
.ЗависитОт().ФабрикаXDTO("fixtures/schemas")
.ДобавитьТест("ДругаяПроверка");
СвойствоОтчета
Устанавливает свойство отчёта для теста, набора или модуля.
Свойства выводятся в junit (properties) и allure (label).
ЮТТесты.СвойствоОтчета("Автор", "Иванов")
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
ИмяСвойства | Строка | ✓ | Имя свойства |
Значение | Любой | ✓ | Значение свойства |
Примеры:
// Одно свойство
ЮТТесты
.ДобавитьТест("Проверка")
.СвойствоОтчета("Автор", "Иванов");
// Несколько свойств через цепочку
ЮТТесты
.ДобавитьТест("Проверка")
.СвойствоОтчета("Автор", "Иванов")
.СвойствоОтчета("Версия", "1.0");
СвойстваОтчета
Устанавливает структуру свойств отчёта для теста, набора или модуля.
Свойства выводятся в junit (properties) и allure (label).
ЮТТесты.СвойстваОтчета(Новый Структура("Автор,Версия", "Иванов,1.0"))
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
Свойства | Структура | ✓ | Структура свойств |
Примеры:
// Структура свойств
ЮТТесты
.ДобавитьТест("Проверка")
.СвойстваОтчета(Новый Структура("Автор, Версия", "Иванов", "1.0"));
Настроить
Позволяет выполнить произвольную настройку текущего объекта.
ЮТТесты.Настроить(НастроитьТест())
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
ФункцияНастройки | Функция | ✓ | Функция настройки |
Примеры:
// Использование функции настройки
ЮТТесты
.ДобавитьТест("Проверка")
.Настроить(НастроитьТест())
.ДобавитьТест("ДругаяПроверка")
.Настроить(ЮТАлюр
.Идентификатор("TST-123")
.Серьезность("critical")
.Владелец("Иванов"));
;
Интеграция с Allure (ЮТАлюр)
Для расширенного описания тестов поддерживаются методы модуля ЮТАлюр
:
Идентификатор
,Описание
,ОписаниеHTML
,Серьезность
,Владелец
,Эпик
,Функциональность
,История
,РодительскийНабор
,Набор
,ПодчиненныйНабор
,Свойство
,Пакет
,TestCaseId
,Description
,DescriptionHtml
,Severity
,Epic
,Feature
,Story
,ParentSuite
,Suite
,SubSuite
,Package
,Owner
,Label
и др.
Подробнее о, установке параметров Allure можно почитать в отдельной статье
Пример:
ЮТТесты
.Настроить(ЮТАлюр
.Epic("Unit tests")
.Suite("Проверка формирования отчета Allure")
.Feature("Проверка формирования отчета Allure")
.Пакет("ФормированиеОтчета.Allure")
.Owner("alkoleft")
.Свойство("Проверяемый объект", "ЮТОтчетAllureСлужебный"))
.ДобавитьТест("ПараметрыГенерацииОтчета")
.Настроить(ЮТАлюр.Описание("Проверка генерации отчета Allure. Шаги: ...."))
;
Примеры из реальных тестовых модулей
Пример 1: Группировка и параметры
ЮТТесты.ДобавитьТестовыйНабор("ИменаЛюдей")
.ДобавитьТест("Имя")
.ДобавитьТест("Фамилия")
.ДобавитьТест("Отчество");
ЮТТесты
.ДобавитьСерверныйТест("ОписаниеОбъектаМетаданных")
.СПараметрами(Истина)
.ДобавитьКлиентскийТест("ОписаниеОбъектаМетаданных")
.СПараметрами(Ложь)
Пример 2: Использование тегов и обработчиков
ЮТТесты.Тег("Тестовые данные")
.ДобавитьТест("Конструктор")
.ДобавитьТест("УстановитьТело");
ЮТТесты
.ДобавитьТестовыйНабор("Локализации")
.ДобавитьТест("УстановкаЛокализации")
.После("СброситьЛокализацию");
Пример 3: Параметризованные тесты
ЮТТесты
.ДобавитьТест("ЭтоСистемноеПеречисление")
.СПараметрами(Тип("ВидДвиженияБухгалтерии"), Истина)
.СПараметрами(Тип("Дата"), Ложь);
Ссылки
- Программный интерфейс модулей
- Связанные статьи
- Примеры тестовых модулей