diff --git a/.vscode/settings.json b/.vscode/settings.json index 2ec88eb2c..c5dce9e42 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,8 +1,16 @@ { "cSpell.words": [ + "абвгдеёжзийклмнопрстуфхцчшщъыьэюя", + "алиас", "валидировать", + "гггг", + "гендером", + "Дозаполнить", "замокированного", + "Инкрементирует", + "КоллекцияjUnit", "логирвания", + "МассивjUnit", "Ментейнер", "моками", "моки", @@ -17,20 +25,40 @@ "Мокито", "моков", "Неопределено", + "ОКАТО", "Переиспользование", + "Повт", "помогаторы", "пресетов", "Регистронезависимое", "релизный", + "Сериализатор", "сериализацию", + "сериализуемыми", "сериализуемых", + "СтрокуjUnit", + "СHTTP", + "ТИПЗНАЧЕНИЯ", "фейкового", "фейковых", "фича", + "Человекочитаемое", "юнит", + "ЮТHTTP", + "Addin", "autonumber", "bellerage", + "BSLLS", + "classname", + "consructor", + "dumpjson", + "Functest", + "jUnit", "mindmap", + "tchk", + "testcase", + "testsuite", + "testsuites", "Wiremock", "XDTO", "yaxunit" diff --git a/documentation/docs/getting-started/run/configuration.md b/documentation/docs/getting-started/run/configuration.md index 5be0241eb..aad806238 100644 --- a/documentation/docs/getting-started/run/configuration.md +++ b/documentation/docs/getting-started/run/configuration.md @@ -21,11 +21,10 @@ |---------------|---------|-----------------------|------------------------------------------------------------------------------| | `extensions` | `Array` | `["tests"]` | Список имен расширений, из которых грузятся тесты | | `modules` | `Array` | `Null` | Список имен модулей, из которых грузятся тесты | -| `tests` | `Array` | `Null` | Список полных путей к исполняемым тестам (`[имя модуля.имя теста]`) | -| `suites` | `Array` | `Null` | **Не реализованно.** Список имен тестовых наборов, которые будут запускаться | -| `tags` | `Array` | `Null` | **Не реализованно.** Список тегов, которые будут запускаться | +| `tests` | `Array` | `Null` | Список полных путей к исполняемым тестам (`[имя модуля.имя теста{.Имя контекста}]`) | +| `suites` | `Array` | `Null` | Список имен тестовых наборов, которые будут запускаться | +| `tags` | `Array` | `Null` | Список тегов, которые будут запускаться | | `contexts` | `Array` | `Null` | Список имен контекстов исполнения, в которых будут запускаться тесты | -| `paths` | `Array` | `Null` | **Не реализованно.** Список полных путей к исполняемым тестам | ## Параметры логирования @@ -34,7 +33,7 @@ | `file` | `String` | `""` | Путь к файлу лога | | `enable` | `Boolean` | `Null` | Использование логирвания.
Если не указан, зависит от параметра `file` и `console`, если установлены - вкл, если нет - выкл | | `console` | `Boolean` | `false` | Вывод лога в stdout (консоль) | -| `level` | `String` | `"debug"` | Уровень детализации лога. Возможные значения: `"debug"`, `"info"`, `"error"` | +| `level` | `String` | `"debug"` | Уровень детализации лога. Возможные значения: `"debug"`, `"info"`, `"warning"`, `"error"` | Примеры: diff --git a/exts/yaxunit/.settings/Default.cset b/exts/yaxunit/.settings/Default.cset index e17003ccb..c1197d704 100644 --- a/exts/yaxunit/.settings/Default.cset +++ b/exts/yaxunit/.settings/Default.cset @@ -1,8 +1,4 @@ { "version": 1, - "settings": { - "common-module-type": { - "enabled": false - } - } + "settings": {} } \ No newline at end of file diff --git "a/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276/Module.bsl" index 1fef6412b..3840c6b65 100644 --- "a/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276/Module.bsl" @@ -214,7 +214,7 @@ // BSLLS:NumberOfParams-on // BSLLS:NumberOfOptionalParams-on -// Возврщает идентификатор значения входного параметра по умолчанию. +// Возвращает идентификатор значения входного параметра по умолчанию. // // Возвращаемое значение: // Строка diff --git "a/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270/Module.bsl" index 6a8f1c98e..e84bf8ab0 100644 --- "a/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\234\320\276\320\272\320\270\321\202\320\276\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\270/Module.bsl" @@ -37,7 +37,7 @@ // ОбщийМодуль - Этот же модуль, для замыкания Функция КоличествоВызовов(ИмяМетода = Неопределено, ПараметрыВызова = Неопределено) Экспорт - СпозиционироватьсяНаМетоде(ИмяМетода, ПараметрыВызова); + ПозиционированиеНаМетоде(ИмяМетода, ПараметрыВызова); Возврат МокитоПроверки; @@ -53,7 +53,7 @@ // Массив из см. МокитоСлужебный.СтруктураВызоваМетода - Вызовы метода Функция Вызовы(ИмяМетода = Неопределено, ПараметрыВызова = Неопределено) Экспорт - СпозиционироватьсяНаМетоде(ИмяМетода, ПараметрыВызова); + ПозиционированиеНаМетоде(ИмяМетода, ПараметрыВызова); Возврат СтатистикаВызовов(); @@ -249,7 +249,7 @@ КонецФункции -Процедура СпозиционироватьсяНаМетоде(ИмяМетода = Неопределено, ПараметрыВызова = Неопределено) +Процедура ПозиционированиеНаМетоде(ИмяМетода = Неопределено, ПараметрыВызова = Неопределено) Параметры = ПараметрыПроверки(); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index 94b9e2790..5f94587a6 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -69,7 +69,7 @@ КонецФункции -// Возвращяет записи результат запроса +// Возвращает записи результат запроса // // Параметры: // ОписаниеЗапроса - см. ЮТЗапросы.ОписаниеЗапроса diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/Module.bsl" index 4bd1afce9..942853ee0 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/Module.bsl" @@ -70,6 +70,60 @@ КонецПроцедуры +// Создает новый массив путем объединения входных. +// +// Параметры: +// Коллекция1 - Массив Из Произвольный +// Коллекция2 - Массив Из Произвольный +// Коллекция3 - Массив Из Произвольный +// Коллекция4 - Массив Из Произвольный +// +// Возвращаемое значение: +// Массив из Произвольный - Результат объединения +Функция ОбъединитьМассивы(Коллекция1, Коллекция2, Коллекция3 = Неопределено, Коллекция4 = Неопределено) Экспорт + + Коллекции = Новый Массив; + Если ЗначениеЗаполнено(Коллекция1) Тогда + Коллекции.Добавить(Коллекция1); + КонецЕсли; + + Если ЗначениеЗаполнено(Коллекция2) Тогда + Коллекции.Добавить(Коллекция2); + КонецЕсли; + + Если ЗначениеЗаполнено(Коллекция3) Тогда + Коллекции.Добавить(Коллекция3); + КонецЕсли; + + Если ЗначениеЗаполнено(Коллекция4) Тогда + Коллекции.Добавить(Коллекция4); + КонецЕсли; + + Если НЕ ЗначениеЗаполнено(Коллекции) Тогда + Возврат Новый Массив; + КонецЕсли; + + Размер = 0; + Для Каждого Коллекция Из Коллекции Цикл + Размер = Размер + Коллекция.Количество(); + КонецЦикла; + + Результат = Новый Массив(Размер); + Позиция = 0; + + Для Каждого Коллекция Из Коллекции Цикл + Размер = Размер + Коллекция.Количество(); + + Для Инд = 0 По Коллекция.ВГраница() Цикл + Результат[Позиция] = Коллекция[Инд]; + Позиция = Позиция + 1; + КонецЦикла; + КонецЦикла; + + Возврат Результат; + +КонецФункции + // Создает копию экземпляра указанного объекта. // Примечание: // Функцию нельзя использовать для объектных типов (СправочникОбъект, ДокументОбъект и т.п.). @@ -215,7 +269,7 @@ // // Параметры: // Коллекция - Произвольный - Итерируемая коллекция -// ИмяРеквизита - Строка - Имя реквизата элементов коллекции +// ИмяРеквизита - Строка - Имя реквизита элементов коллекции // // Возвращаемое значение: // Массив из Произвольный @@ -391,6 +445,31 @@ КонецФункции +// Создает структуру из массива. +// Ключами будут элементы массива, а значением каждого элемента структуры - параметр `ЗначениеСтруктуры` +// +// Параметры: +// Значения - Массив из Строка +// ЗначениеСтруктуры - Произвольный +// +// Возвращаемое значение: +// Структура +Функция МассивВСтруктуру(Значения, ЗначениеСтруктуры = Неопределено) Экспорт + + Результат = Новый Структура(); + + Если НЕ ЗначениеЗаполнено(Значения) Тогда + Возврат Результат; + КонецЕсли; + + Для Каждого Значение Из Значения Цикл + Результат.Вставить(Значение, ЗначениеСтруктуры); + КонецЦикла; + + Возврат Результат; + +КонецФункции + #КонецОбласти #Область СлужебныеПроцедурыИФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213/Module.bsl" index ad39dade4..07e26c458 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213/Module.bsl" @@ -95,7 +95,7 @@ КонецФункции -// Подключает внещнюю компоненту из макета +// Подключает внешнюю компоненту из макета // // Параметры: // ИмяМакета - Строка - Имя макета, в котором хранится компонента diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" index 9856c3620..9f8f04bdb 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\274\320\277\320\276\320\275\320\265\320\275\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" @@ -206,7 +206,7 @@ | | |", ИмяФайла); - ИначеЕсли СтрНайти(ДанныеРеестра, СтрШаблон("path=""%1""", ИмяФайла)) <> 0 Тогда // Компонента уже зарегистрированна + ИначеЕсли СтрНайти(ДанныеРеестра, СтрШаблон("path=""%1""", ИмяФайла)) <> 0 Тогда // Компонента уже зарегистрирована Возврат Ложь; Иначе // Добавляем компоненту Запись = СтрШаблон(" ", ИмяФайла); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 51d5db8ff..aeea92987 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\233\320\276\320\263\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -144,10 +144,9 @@ // // Параметры: // МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМодуля -// ИсполняемыеСценарии - см. ЮТТесты.СценарииМодуля -Процедура ПослеЧтенияСценариевМодуля(МетаданныеМодуля, ИсполняемыеСценарии) Экспорт +Процедура ПослеЧтенияСценариевМодуля(ОписаниеТестовогоМодуля) Экспорт - ЮТЛогирование.Информация(СтрШаблон("Загрузка сценариев модуля завершена `%1`", МетаданныеМодуля.Имя)); + ЮТЛогирование.Информация(СтрШаблон("Загрузка сценариев модуля завершена `%1`", ОписаниеТестовогоМодуля.МетаданныеМодуля.Имя)); КонецПроцедуры diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265/Module.bsl" index 398aa2e9a..bbb84fca8 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265/Module.bsl" @@ -127,7 +127,7 @@ КонецФункции -// Возвращяет набор регистров движений документа +// Возвращает набор регистров движений документа // // Параметры: // Документ - ОбъектМетаданных diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217/Module.bsl" index d738e24f1..5d0c8f033 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217/Module.bsl" @@ -76,7 +76,7 @@ // ИмяНастройки - Строка - Имя настройки, см. ЮТФабрика.ПараметрыИсполненияТеста // ЗначениеПоУмолчанию - Произвольный - Значение по умолчанию // СтрогийУровеньИсполнения - Булево - Признак, стоит ли проверять наличие настройки у родительских элементов. -// Ложь - По умолчанию, будет выполнен поиск и получение значения для родетелей (набор, модуль), если значения для текущего элемента не установлено. +// Ложь - По умолчанию, будет выполнен поиск и получение значения для родителей (набор, модуль), если значения для текущего элемента не установлено. // Истина - Получение настройки только для текущего элемента. // // Возвращаемое значение: diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" index 4f021dbe1..ce39b3845 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" @@ -122,7 +122,7 @@ #Область ДатаВремя -// Человекочитаемое представление продолжительности +// Формирует представление продолжительности в удобном для восприятия виде, с выделением минут секунд и тд. // // Параметры: // Продолжительность - Число - Продолжительность в миллисекундах @@ -335,7 +335,7 @@ КонецПроцедуры -// Преостанавливает поток выполнения на указанное количество секунд +// Приостанавливает поток выполнения на указанное количество секунд // // Параметры: // Время - Число - Продолжительность паузы в секундах, возможно указывать дробное значение @@ -376,7 +376,7 @@ КонецПроцедуры -// Возвращяет макет +// Возвращает макет // // Параметры: // ИмяМакета - Строка - Возможные значения diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 2f39ac29d..bc6bc3c1c 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -43,7 +43,8 @@ Для Каждого РезультатТеста Из Набор.Тесты Цикл Попытка - СохранитьОтчетТеста(РезультатТеста, Набор, Модуль, Каталог); + Описание = ОписаниеТеста(РезультатТеста, Набор, Модуль); + СохранитьОтчетТеста(Описание, Каталог); Исключение ЮТЛогирование.Ошибка("Ошибка сохранения отчета в формате Allure. " + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); КонецПопытки; @@ -63,9 +64,7 @@ #Область СлужебныеПроцедурыИФункции #Если НЕ ВебКлиент Тогда -Процедура СохранитьОтчетТеста(РезультатТеста, Набор, Модуль, Каталог) - - Описание = ОписаниеТеста(РезультатТеста, Набор, Модуль); +Процедура СохранитьОтчетТеста(Описание, Каталог) ИмяФайла = ЮТФайлы.ОбъединитьПути(Каталог, Описание.uuid + "-result.json"); Запись = Новый ЗаписьJSON(); @@ -81,6 +80,8 @@ ПредставлениеРежима = СтрШаблон(" [%1]", РезультатТеста.Режим); ПолныйИдентификаторТеста = СтрШаблон("%1_%2_%3", РезультатТеста.НомерВНаборе, РезультатТеста.ПолноеИмяМетода, РезультатТеста.Режим); + Теги = ЮТОтчетСлужебныйКлиентСервер.УникальныеТеги(Модуль, Набор, РезультатТеста); + Описание = НовыйОписаниеТеста(); Описание.fullName = РезультатТеста.ПолноеИмяМетода + ПредставлениеРежима; Описание.name = РезультатТеста.Метод + ПредставлениеРежима; @@ -115,7 +116,7 @@ ДобавитьМетку(Описание, "tag", РезультатТеста.Режим); - Для Каждого Тег Из РезультатТеста.Теги Цикл + Для Каждого Тег Из Теги Цикл ДобавитьМетку(Описание, "tag", Тег); КонецЦикла; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index eb89d6788..2d6263189 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -71,7 +71,7 @@ Для Каждого Набор Из Модуль.НаборыТестов Цикл - ЗаписатьНабор(ЗаписьXML, Набор, Номер); + ЗаписатьНабор(ЗаписьXML, Модуль, Набор, Номер); Номер = Номер + 1; КонецЦикла; @@ -172,11 +172,14 @@ КонецЕсли; + ЗаписатьСвойства(ЗаписьXML, Новый Структура, РезультатТеста.Теги); + ЗаписьXML.ЗаписатьКонецЭлемента(); КонецПроцедуры Процедура ЗаписатьОшибку(ЗаписьXML, ОписаниеОшибки) + Сообщение = СообщениеОбОшибке(ОписаниеОшибки); ЗаписьXML.ЗаписатьНачалоЭлемента("error"); Если Сообщение <> Неопределено Тогда @@ -192,9 +195,10 @@ КонецЕсли; ЗаписьXML.ЗаписатьКонецЭлемента(); + КонецПроцедуры -Процедура ЗаписатьНабор(ЗаписьXML, Набор, Номер) +Процедура ЗаписатьНабор(ЗаписьXML, Модуль, Набор, Номер) КоличествоТестов = 0; КоличествоПропущенных = 0; @@ -234,12 +238,12 @@ КонецЦикла; Для Каждого РезультатТеста Из Набор.Тесты Цикл - ЗаписатьТест(ЗаписьXML, РезультатТеста); - КонецЦикла; - ЗаписатьСвойства(ЗаписьXML, Новый Структура("context", Набор.Режим)); + Теги = ЮТКоллекции.ОбъединитьМассивы(Модуль.Теги, Набор.Теги); + ЗаписатьСвойства(ЗаписьXML, Новый Структура("context", Набор.Режим), Теги); + ЗаписьXML.ЗаписатьКонецЭлемента(); // testsuite КонецПроцедуры @@ -328,7 +332,11 @@ КонецФункции -Процедура ЗаписатьСвойства(ЗаписьXML, Свойства) +Процедура ЗаписатьСвойства(ЗаписьXML, Свойства, Теги = Неопределено) + + Если НЕ ЗначениеЗаполнено(Свойства) И НЕ ЗначениеЗаполнено(Теги) Тогда + Возврат; + КонецЕсли; ЗаписьXML.ЗаписатьНачалоЭлемента("properties"); @@ -339,8 +347,27 @@ ЗаписьXML.ЗаписатьКонецЭлемента(); // property КонецЦикла; + ЗаписатьТеги(ЗаписьXML, Теги); + ЗаписьXML.ЗаписатьКонецЭлемента(); // properties КонецПроцедуры +Процедура ЗаписатьТеги(ЗаписьXML, НаборТегов) + + Если НЕ ЗначениеЗаполнено(НаборТегов) Тогда + Возврат; + КонецЕсли; + + УникальныеТеги = ЮТСтроки.УникальныеСтроки(НаборТегов); + + Для Каждого Тег Из УникальныеТеги Цикл + ЗаписьXML.ЗаписатьНачалоЭлемента("property"); + ЗаписьXML.ЗаписатьАтрибут("name", "tag"); + ЗаписьXML.ЗаписатьАтрибут("value", ЗначениеВСтрокуjUnit(Тег)); + ЗаписьXML.ЗаписатьКонецЭлемента(); // property + КонецЦикла; + +КонецПроцедуры + #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" new file mode 100644 index 000000000..e2591bd98 --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -0,0 +1,32 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область СлужебныйПрограммныйИнтерфейс + +Функция УникальныеТеги(Модуль, Набор, РезультатТеста) Экспорт + + Теги = ЮТКоллекции.ОбъединитьМассивы(Модуль.Теги, Набор.Теги, РезультатТеста.Теги); + Возврат ЮТСтроки.УникальныеСтроки(Теги); + +КонецФункции + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" new file mode 100644 index 000000000..892ace809 --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200.mdo" @@ -0,0 +1,11 @@ + + + ЮТОтчетСлужебныйКлиентСервер + + ru + Отчет служебный клиент сервер + + true + true + true + diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\221\320\260\320\275\320\272\320\270/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\221\320\260\320\275\320\272\320\270/Module.bsl" index 63270c715..a9d810649 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\221\320\260\320\275\320\272\320\270/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\221\320\260\320\275\320\272\320\270/Module.bsl" @@ -24,7 +24,7 @@ // Параметры: // БИК - Строка - БИК банка // КодВалюты - Строка - Код валюты -// ЮрЛицо - Булево - Генерация счета юрлица, иначе физ лица +// ЮрЛицо - Булево - Генерация счета юр. лица, иначе физ. лица // // Возвращаемое значение: // Строка - Номер счета diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\233\321\216\320\264\320\270/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\233\321\216\320\264\320\270/Module.bsl" index 95dafc0f4..4d361d021 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\233\321\216\320\264\320\270/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\233\321\216\320\264\320\270/Module.bsl" @@ -101,7 +101,7 @@ КонецФункции -// Формирует случаный ИНН физического лица +// Формирует случайный ИНН физического лица // // Возвращаемое значение: // Строка @@ -109,16 +109,16 @@ Возврат ЮТТестовыеДанные.Подражатель().Компании().ИНН(, Истина); КонецФункции -// Формирует случаный СНИЛС. +// Формирует случайный СНИЛС. // https://ru.wikipedia.org/wiki/Контрольное_число // Возвращаемое значение: // Строка Функция СНИЛС() Экспорт ЧастиСнилс = Новый Массив(); - ФорматаяСтрока = "ЧЦ=3; ЧН=000; ЧВН=;"; - ЧастиСнилс.Добавить(Формат(ЮТТестовыеДанные.СлучайноеЧисло(100, 999), ФорматаяСтрока)); - ЧастиСнилс.Добавить(Формат(ЮТТестовыеДанные.СлучайноеЧисло(0, 999), ФорматаяСтрока)); - ЧастиСнилс.Добавить(Формат(ЮТТестовыеДанные.СлучайноеЧисло(0, 999), ФорматаяСтрока)); + ФорматЧисла = "ЧЦ=3; ЧН=000; ЧВН=;"; + ЧастиСнилс.Добавить(Формат(ЮТТестовыеДанные.СлучайноеЧисло(100, 999), ФорматЧисла)); + ЧастиСнилс.Добавить(Формат(ЮТТестовыеДанные.СлучайноеЧисло(0, 999), ФорматЧисла)); + ЧастиСнилс.Добавить(Формат(ЮТТестовыеДанные.СлучайноеЧисло(0, 999), ФорматЧисла)); ИтогоСтрокой = СтрСоединить(ЧастиСнилс, ""); ДлинаОсновнойЧасти = СтрДлина(ИтогоСтрокой); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213/Module.bsl" index d6721454f..6f827cdc8 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213/Module.bsl" @@ -42,7 +42,7 @@ КонецФункции // Устанавливает имя свойства, все последующие проверки будут относится к нему. -// Это алиас для см. Реквизит +// Это псевдоним (алиас) для см. Реквизит // // Параметры: // ИмяСвойства - Строка - Имя реквизита diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index 53034b530..bdfd835c2 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\321\200\320\265\320\264\320\270\320\272\320\260\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -25,7 +25,7 @@ // Предикаты - Массив Из см. ЮТФабрика.ВыражениеПредиката // ПараметрыСообщенийОбОшибке - см. ПараметрыСообщенийОбОшибке // ПараметрыСравнения - Неопределено -// - Структура - Параметры сравнения значений, для разных выражений испльзуются свои параметры +// - Структура - Параметры сравнения значений, для разных выражений используются свои параметры // // Возвращаемое значение: // см. ЮТФабрикаСлужебный.ОписаниеРезультатаПроверки diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/Module.bsl" index c2ad89f6b..143527091 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272/Module.bsl" @@ -18,7 +18,7 @@ #Область ПрограммныйИнтерфейс -// Добавляет пяснение возникшей ошибки, которое будет довлено в отчет. +// Добавляет пояснение возникшей ошибки, которое будет добавлено в отчет. // Используется перед выбросом исключения, чтобы добавить полезной информации об ошибке, но при этом не ломать стек. // // Параметры: diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index cc1d3aeea..e7a318880 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -211,11 +211,10 @@ // После чтения сценариев модуля. // Позволяет настроить/обработать параметры загруженных настроек тестов модуля // Параметры: -// МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМодуля -// ИсполняемыеСценарии - см. ЮТТестыСлужебный.СценарииМодуля -Процедура ПослеЧтенияСценариевМодуля(МетаданныеМодуля, ИсполняемыеСценарии) Экспорт +// ОписаниеТестовогоМодуля - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля +Процедура ПослеЧтенияСценариевМодуля(ОписаниеТестовогоМодуля) Экспорт - Параметры = ЮТКоллекции.ЗначениеВМассиве(МетаданныеМодуля, ИсполняемыеСценарии); + Параметры = ЮТКоллекции.ЗначениеВМассиве(ОписаниеТестовогоМодуля); ВызватьПодключаемыйОбработчикСобытия("ПослеЧтенияСценариевМодуля", "ЗагрузкаТестов", Параметры); КонецПроцедуры diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index 486a36b84..8833c438e 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -60,7 +60,7 @@ #Область СлужебныеПроцедурыИФункции // https://github.com/vanessa-opensource/add -// портирован из Functest +// перенесен из Functest Функция ПолучитьТаблицуЗначенийИзТабличногоДокумента(ТабличныйДокумент, УчитыватьТолькоВидимыеКолонки = Ложь, УчитыватьТолькоВидимыеСтроки = Ложь) ТипТабличногоДокумента = ТипЗнч(ТабличныйДокумент); @@ -79,7 +79,7 @@ Колонки = НоваяТаблицаЗначений.Колонки; ТипСтрока = Новый ОписаниеТипов("Строка"); - // TODO При определении видимости не учитывается наличие нескольких форматов строк, сейчас видимоcть колонки определяется по формату первой строки + // TODO При определении видимости не учитывается наличие нескольких форматов строк, сейчас видимость колонки определяется по формату первой строки УчитываемыеКолонки = Новый Массив; Для НомерКолонки = 1 По НомерПоследнейКолонки Цикл ОбластьКолонки = ТабличныйДокумент.Область(0, НомерКолонки, 1, НомерКолонки); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index 3729f5d9d..adbdf3349 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\200\320\260\320\262\320\275\320\265\320\275\320\270\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -393,7 +393,7 @@ КонецФункции -#Область РеализацияПредикатор +#Область РеализацияПредикатов Процедура ПроверитьВыражениеПредиката(Значение, Выражение, СтатусПроверки, ПараметрыСообщенийОбОшибке, ПараметрыСравнения) Экспорт @@ -413,7 +413,7 @@ // СтатусПроверки - см. ЮТФабрикаСлужебный.ОписаниеРезультатаПроверки // ПараметрыСообщенийОбОшибке - см. ПараметрыСообщенийОбОшибке // ПараметрыСравнения - Неопределено -// - Структура - Параметры сравнения значений, для разных выражений испльзуются свои параметры +// - Структура - Параметры сравнения значений, для разных выражений используются свои параметры Процедура ВызватьОбработчикПредиката(Значение, Выражение, СтатусПроверки, ПараметрыСообщенийОбОшибке, ПараметрыСравнения) // BSLLS:CognitiveComplexity-off diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" index cff826070..19d1a27d3 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" @@ -246,6 +246,36 @@ КонецФункции +// Из набора строк формирует набор уникальных строк. +// Сравнение происходит без учета регистра. +// +// Параметры: +// НеУникальныеСтроки - Массив Из Строка +// +// Возвращаемое значение: +// Массив Из Строка - Уникальные строки +Функция УникальныеСтроки(НеУникальныеСтроки) Экспорт + + Если НЕ ЗначениеЗаполнено(НеУникальныеСтроки) Тогда + Возврат НеУникальныеСтроки; + КонецЕсли; + + Хэш = Новый Соответствие(); + + Результат = Новый Массив; + + Для Каждого Строка Из НеУникальныеСтроки Цикл + Ключ = НРег(Строка); + Если Хэш[Ключ] = Неопределено Тогда + Результат.Добавить(Строка); + Хэш.Вставить(Ключ, 1); + КонецЕсли; + КонецЦикла; + + Возврат Результат; + +КонецФункции + #КонецОбласти #Область СлужебныеПроцедурыИФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" index 65b7b5d3a..dcdc965c0 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" @@ -535,7 +535,7 @@ КонецФункции -// Возвращает случайное предопреленное значения объекта конфигурации. +// Возвращает случайное предопределенное значения объекта конфигурации. // // Параметры: // Менеджер - Строка - Имя менеджера. Примеры: "Справочники.ВидыЦен", "Справочник.ВидыЦен" diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 8b4727d26..130fb743c 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -40,11 +40,11 @@ ИначеЕсли Тип = Тип("Строка") Тогда - Значение = ФикстивнаяСтрока(ОписаниеТипа); + Значение = ФиктивнаяСтрока(ОписаниеТипа); ИначеЕсли Тип = Тип("Дата") Тогда - Значение = ФикстивнаяДата(ОписаниеТипа); + Значение = ФиктивнаяДата(ОписаниеТипа); ИначеЕсли Тип = Тип("Булево") Тогда @@ -227,7 +227,7 @@ КонецФункции -Функция ФикстивнаяСтрока(ОписаниеТипа) +Функция ФиктивнаяСтрока(ОписаниеТипа) Если ТипЗнч(ОписаниеТипа) <> Тип("ОписаниеТипов") Тогда Возврат ЮТТестовыеДанные.СлучайнаяСтрока(ЮТТестовыеДанные.СлучайноеПоложительноеЧисло(100)); @@ -243,7 +243,7 @@ КонецФункции -Функция ФикстивнаяДата(ОписаниеТипа) +Функция ФиктивнаяДата(ОписаниеТипа) Интервал = 315360000; // 10 лет //@skip-check use-non-recommended-method diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl" index df772a099..1dc418e90 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl" @@ -37,6 +37,21 @@ КонецФункции +// Добавляет тег к тесту/набору/модулю +// +// Параметры: +// Тег - Строка +// +// Возвращаемое значение: +// CommonModule.ЮТТесты - Тег +Функция Тег(Тег) Экспорт + + ЮТТестыСлужебный.ДобавитьТег(Тег); + + Возврат ЮТТесты; + +КонецФункции + // Регистрирует тест, исполняемый в контекстах, в которых доступен тестовый модуль. // Например // @@ -105,7 +120,7 @@ // ОбщийМодуль - Этот же модуль Функция НастройкаИсполнения(ИмяПараметра, Значение) Экспорт - ЮТТестыСлужебный.НастройкаИсполнения(ИмяПараметра, Значение); + ЮТТестыСлужебный.УстановитьНастройкуИсполнения(ИмяПараметра, Значение); Возврат ЮТТесты; @@ -120,7 +135,7 @@ // ОбщийМодуль - Этот же модуль Функция ВТранзакции(ВыполнятьВТранзакции = Истина) Экспорт - ЮТТестыСлужебный.НастройкаИсполнения(ЮТФабрика.ПараметрыИсполненияТеста().ВТранзакции, ВыполнятьВТранзакции); + ЮТТестыСлужебный.УстановитьНастройкуИсполнения(ЮТФабрика.ПараметрыИсполненияТеста().ВТранзакции, ВыполнятьВТранзакции); Возврат ЮТТесты; @@ -141,7 +156,7 @@ // ОбщийМодуль - Этот же модуль Функция УдалениеТестовыхДанных(УдалятьСозданныеДанные = Истина) Экспорт - ЮТТестыСлужебный.НастройкаИсполнения(ЮТФабрика.ПараметрыИсполненияТеста().УдалениеТестовыхДанных, УдалятьСозданныеДанные); + ЮТТестыСлужебный.УстановитьНастройкуИсполнения(ЮТФабрика.ПараметрыИсполненияТеста().УдалениеТестовыхДанных, УдалятьСозданныеДанные); Возврат ЮТТесты; @@ -156,7 +171,7 @@ // ОбщийМодуль - Этот же модуль Функция Перед(ВыполнитьПеред = "") Экспорт - ЮТТестыСлужебный.НастройкаИсполнения(ЮТФабрика.ПараметрыИсполненияТеста().Перед, ВыполнитьПеред); + ЮТТестыСлужебный.УстановитьНастройкуИсполнения(ЮТФабрика.ПараметрыИсполненияТеста().Перед, ВыполнитьПеред); Возврат ЮТТесты; @@ -171,7 +186,7 @@ // ОбщийМодуль - Этот же модуль Функция После(ВыполнитьПосле = "") Экспорт - ЮТТестыСлужебный.НастройкаИсполнения(ЮТФабрика.ПараметрыИсполненияТеста().После, ВыполнитьПосле); + ЮТТестыСлужебный.УстановитьНастройкуИсполнения(ЮТФабрика.ПараметрыИсполненияТеста().После, ВыполнитьПосле); Возврат ЮТТесты; @@ -350,15 +365,29 @@ КонецФункции -// Возволяет выполнить настройку зависимостей теста, тестового набора или модуля. +// Позволяет выполнить настройку зависимостей теста, тестового набора или модуля. // Возвращает модуль установки зависимостей теста. // // Возвращаемое значение: -// CommonModule +// CommonModule - Этот же модуль Функция ЗависитОт() Экспорт Возврат ЮТЗависимости; КонецФункции +// Используется для вызова произвольной функции внутри текучего интерфейса +// +// Параметры: +// _ - Произвольный +// +// Возвращаемое значение: +// CommonModule - Этот же модуль +//@skip-check bsl-variable-name-invalid +Функция Вызов(_) Экспорт + + Возврат ЮТТесты; + +КонецФункции + #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index dc0a45cca..4fa1a51b8 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -20,39 +20,35 @@ Процедура ДобавитьТестовыйНабор(Имя, ТегиСтрокой) Экспорт - ИсполняемыеСценарии = СценарииМодуля(); - - Если НЕ ЭтоИсполняемыеСценарии(ИсполняемыеСценарии) Тогда - ВызватьИсключение "Первый параметр должен быть результатом метода ЮТТесты.ИсполняемыеСценарии"; - КонецЕсли; - Если ПустаяСтрока(Имя) Тогда ВызватьИсключение "Имя тестового набора не может быть пустым"; КонецЕсли; Контекст = Контекст(); - НовыйТестовыйНабор = ЮТФабрикаСлужебный.ОписаниеТестовогоНабора(Имя, ТегиСтрокой); - ИсполняемыеСценарии.ТестовыеНаборы.Добавить(НовыйТестовыйНабор); - Контекст.ТекущийНабор = НовыйТестовыйНабор; - Контекст.ТекущийЭлемент = НовыйТестовыйНабор; + Если Контекст = Неопределено ИЛИ НЕ Контекст.Свойство("ОписаниеМодуля") Тогда + ВызватьИсключение "Не инициализирован контекст регистрации тестов"; + КонецЕсли; + + ТестовыйНабор = ЮТФабрикаСлужебный.ОписаниеТестовогоНабора(Имя, ТегиСтрокой); + + Контекст.ОписаниеМодуля.НаборыТестов.Добавить(ТестовыйНабор); + Контекст.ТекущийНабор = ТестовыйНабор; + Контекст.ТекущийЭлемент = ТестовыйНабор; КонецПроцедуры Процедура ДобавитьТест(ИмяТестовогоМетода, ПредставлениеТеста, ТегиСтрокой, Контексты) Экспорт + Если ПустаяСтрока(ИмяТестовогоМетода) Тогда + ВызватьИсключение "Имя тестового метода не может быть пустым"; + КонецЕсли; + Контекст = Контекст(); Набор = Контекст.ТекущийНабор; - ЭтоИсполняемыеСценарии = ЭтоИсполняемыеСценарии(Набор); - ЭтоТестовыйНабор = ЭтоТестовыйНабор(Набор); - - Если НЕ (ЭтоИсполняемыеСценарии ИЛИ ЭтоТестовыйНабор) Тогда - ВызватьИсключение "Первый параметр должен быть результатом метода ЮТТесты.ИсполняемыеСценарии или ЮТТесты.ТестовыйНабор"; - КонецЕсли; - - Если ПустаяСтрока(ИмяТестовогоМетода) Тогда - ВызватьИсключение "Имя тестового метода не может быть пустым"; + Если Набор = Неопределено Или НЕ Набор.Свойство("Тесты") Тогда + ВызватьИсключение "Не установлен тестовый набор. Скорее всего проблема в движке"; КонецЕсли; Тест = ОписаниеТеста(ИмяТестовогоМетода, ПредставлениеТеста, ТегиСтрокой, Контексты); @@ -74,7 +70,7 @@ КонецПроцедуры -Процедура НастройкаИсполнения(ИмяПараметра, Значение) Экспорт +Процедура УстановитьНастройкуИсполнения(ИмяПараметра, Значение) Экспорт Контекст = Контекст(); @@ -150,6 +146,13 @@ КонецПроцедуры +Процедура ДобавитьТег(ИмяТега) Экспорт + + ТекущийЭлемент = Контекст().ТекущийЭлемент; + ТекущийЭлемент.Теги.Добавить(ИмяТега); + +КонецПроцедуры + Функция КонтекстыВызоваКлиента() Экспорт Режимы = ЮТФабрика.КонтекстыВызова(); @@ -161,28 +164,21 @@ // // Возвращаемое значение: // см. ИсполняемыеСценарии -Функция СценарииМодуля() Экспорт - - СценарииМодуля = Контекст().ИсполняемыеСценарии; - - Результат = Новый Структура("ТестовыеНаборы, НастройкиВыполнения, Зависимости"); - Результат.ТестовыеНаборы = СценарииМодуля.ТестовыеНаборы; +Функция ОписаниеМодуля() Экспорт - // TODO Нужен рефакторинг - Результат.НастройкиВыполнения = ЮТКоллекции.СкопироватьРекурсивно(СценарииМодуля.НастройкиВыполнения); - Результат.Зависимости = ЮТКоллекции.СкопироватьРекурсивно(СценарииМодуля.Зависимости); - - СценарииМодуля.НастройкиВыполнения.Очистить(); // Костыль. Очистка первого набора, тк перенесено в модуль - СценарииМодуля.Зависимости.Очистить(); // Костыль. Очистка первого набора, тк перенесено в модуль - - //@skip-check constructor-function-return-section - Возврат Результат; + Возврат Контекст().ОписаниеМодуля; КонецФункции +// Контекст. +// +// Возвращаемое значение: +// Структура - Контекст: +// * ОписаниеМодуля - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля Функция Контекст() Экспорт - Возврат ЮТКонтекстСлужебный.ЗначениеКонтекста("КонтекстРегистрацияТестов"); + //@skip-check constructor-function-return-section + Возврат ЮТКонтекстСлужебный.ЗначениеКонтекста(ИмяКонтекста()); КонецФункции @@ -191,14 +187,12 @@ Процедура ПередЧтениемСценариевМодуля(МетаданныеМодуля) Экспорт ИнициализироватьКонтекст(МетаданныеМодуля); - ЮТСобытияСлужебный.ПередЧтениемСценариевМодуля(МетаданныеМодуля); КонецПроцедуры -Процедура ПослеЧтенияСценариевМодуля() Экспорт +Процедура ПослеЧтенияСценариевМодуля(ОписаниеТестовогоМодуля) Экспорт - Контекст = Контекст(); - ЮТСобытияСлужебный.ПослеЧтенияСценариевМодуля(Контекст.МетаданныеМодуля, Контекст.ИсполняемыеСценарии); + ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(ИмяКонтекста(), Неопределено); КонецПроцедуры @@ -208,36 +202,27 @@ #Область СлужебныеПроцедурыИФункции -// Исполняемые сценарии. -// +// Новое описание тестового модуля. +// // Параметры: // МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМодуля -// +// // Возвращаемое значение: -// Структура - Исполняемые сценарии: -// * ТестовыеНаборы - Массив из см. ЮТФабрикаСлужебный.ОписаниеТестовогоНабора - Тестовые наборы модуля -// * НастройкиВыполнения - Структура - Настройки исполнения тестов модуля -// * Зависимости - Массив Из см. ЮТФабрика.НовоеОписаниеЗависимости - Зависимости тестового модуля -Функция ИсполняемыеСценарии(МетаданныеМодуля) - - Структура = Новый Структура; - Структура.Вставить("ТестовыеНаборы", Новый Массив); - Структура.Вставить("НастройкиВыполнения", Новый Структура); - Структура.Вставить("Зависимости", Новый Массив); +// см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля +Функция НовоеОписаниеТестовогоМодуля(МетаданныеМодуля) - Набор = ЮТФабрикаСлужебный.ОписаниеТестовогоНабора(МетаданныеМодуля.Имя); - Набор.НастройкиВыполнения = Структура.НастройкиВыполнения; // Общие настройки с набором по умолчанию - Набор.Зависимости = Структура.Зависимости; // Общие зависимости с набором по умолчанию + ОписаниеМодуля = ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля(МетаданныеМодуля, Новый Массив); - Структура.ТестовыеНаборы.Добавить(Набор); + НаборПоУмолчанию = ЮТФабрикаСлужебный.ОписаниеТестовогоНабора(МетаданныеМодуля.Имя); + ОписаниеМодуля.НаборыТестов.Добавить(НаборПоУмолчанию); - Возврат Структура; + Возврат ОписаниеМодуля; КонецФункции Функция КонтекстыВызоваПоУмолчанию() - Возврат ЮТФабрикаСлужебный.КонтекстыМодуля(Контекст().МетаданныеМодуля); + Возврат ЮТФабрикаСлужебный.КонтекстыМодуля(Контекст().ОписаниеМодуля.МетаданныеМодуля); КонецФункции @@ -249,20 +234,6 @@ КонецФункции -Функция ЭтоИсполняемыеСценарии(ИсполняемыеСценарии) - - Возврат ТипЗнч(ИсполняемыеСценарии) = Тип("Структура") - И ТипЗнч(ЮТКоллекции.ЗначениеСтруктуры(ИсполняемыеСценарии, "ТестовыеНаборы")) = Тип("Массив"); - -КонецФункции - -Функция ЭтоТестовыйНабор(ТестовыйНабор) - - Возврат ТипЗнч(ТестовыйНабор) = Тип("Структура") - И ТипЗнч(ЮТКоллекции.ЗначениеСтруктуры(ТестовыйНабор, "Тесты")) = Тип("Массив"); - -КонецФункции - Функция ЭтоОписаниеТеста(Описание) Возврат ТипЗнч(Описание) = Тип("Структура") @@ -284,18 +255,17 @@ Процедура ИнициализироватьКонтекст(МетаданныеМодуля) - ИсполняемыеСценарии = ИсполняемыеСценарии(МетаданныеМодуля); - Набор = ИсполняемыеСценарии.ТестовыеНаборы[0]; + ОписаниеМодуля = НовоеОписаниеТестовогоМодуля(МетаданныеМодуля); + НаборПоУмолчанию = ОписаниеМодуля.НаборыТестов[0]; Контекст = Новый Структура(); - Контекст.Вставить("МетаданныеМодуля", МетаданныеМодуля); - Контекст.Вставить("ИсполняемыеСценарии", ИсполняемыеСценарии); - Контекст.Вставить("ТекущийНабор", Набор); - Контекст.Вставить("ТекущийЭлемент", Набор); + Контекст.Вставить("ОписаниеМодуля", ОписаниеМодуля); + Контекст.Вставить("ТекущийНабор", НаборПоУмолчанию); + Контекст.Вставить("ТекущийЭлемент", ОписаниеМодуля); Контекст.Вставить("БазовыйТест", Неопределено); - ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста("КонтекстРегистрацияТестов", Контекст); + ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(ИмяКонтекста(), Контекст); КонецПроцедуры @@ -313,4 +283,10 @@ КонецФункции +Функция ИмяКонтекста() + + Возврат "КонтекстРегистрацияТестов"; + +КонецФункции + #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" index 7b95cb6ab..351592c50 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" @@ -828,7 +828,7 @@ // Параметры: // ОжидаемоеЗначение - Строка - Ожидается, что сообщение об ошибке будет содержать(включать) данный текст // ОписаниеПроверки - Строка - Описание конкретной проверки -// ВТранзакции - Булево - Вызов метода выполняется в трананзакции +// ВТранзакции - Булево - Вызов метода выполняется в транзакции // // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания @@ -868,7 +868,7 @@ // ОжидаемоеЗначение - Строка - Ожидается, что метод выбросит исключение, текст которого НЕ будет содержать (включать) данный текст // - Неопределено - Ожидается, что метод отработает без выбора исключения // ОписаниеПроверки - Строка - Описание конкретной проверки -// ВТранзакции - Булево - Вызов метода выполняется в трананзакции +// ВТранзакции - Булево - Вызов метода выполняется в транзакции // // Возвращаемое значение: // ОбщийМодуль - Этот модуль для замыкания diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 841bccec0..c01ac32c0 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -122,9 +122,12 @@ Описание.Вставить("Имя", Строка(Имя)); Описание.Вставить("Представление", Строка(Имя)); - Описание.Вставить("Теги", СтрРазделить(ТегиСтрокой, ", ", Ложь)); Описание.Вставить("Тесты", Новый Массив); + Если ЗначениеЗаполнено(ТегиСтрокой) Тогда + Описание.Теги = ЮТСтроки.РазделитьСтроку(ТегиСтрокой, ","); + КонецЕсли; + Возврат Описание; КонецФункции @@ -143,7 +146,7 @@ // * Имя - Строка - Имя теста (тестового метода) // * Представление - Строка - Представление теста // * Теги - Массив из Строка - Теги теста -// * КонтекстВызова - Массив из Строка - Контексты исполнения теста +// * КонтекстВызова - Массив из Строка - Контексты исполнения теста, см. ЮТФабрика.КонтекстыВызова // * НастройкиВыполнения- Структура - Настройки исполнения теста // * Параметры - Неопределено, Массив из Произвольный - Параметры теста // * НомерВНаборе - Число - Порядковый номер теста в наборе @@ -158,11 +161,14 @@ Описание = БазовоеОписаниеРегистрируемогоОбъекта(); Описание.Вставить("Имя", Строка(Имя)); Описание.Вставить("Представление", Строка(Представление)); - Описание.Вставить("Теги", СтрРазделить(ТегиСтрокой, ", ", Ложь)); Описание.Вставить("КонтекстВызова", КонтекстыВызова); Описание.Вставить("Параметры", Неопределено); Описание.Вставить("НомерВНаборе", 0); + Если ЗначениеЗаполнено(ТегиСтрокой) Тогда + Описание.Теги = ЮТСтроки.РазделитьСтроку(ТегиСтрокой, ","); + КонецЕсли; + Возврат Описание; КонецФункции @@ -218,7 +224,6 @@ Описание.Вставить("Имя", НаборТестов.Имя); Описание.Вставить("Представление", НаборТестов.Представление); - Описание.Вставить("Теги", НаборТестов.Теги); Описание.Вставить("Режим", ""); Описание.Вставить("ТестовыйМодуль", ТестовыйМодуль); Описание.Вставить("МетаданныеМодуля", ТестовыйМодуль.МетаданныеМодуля); @@ -264,7 +269,6 @@ Описание.Вставить("Имя", Представление); Описание.Вставить("Метод", Тест.Имя); Описание.Вставить("ПолноеИмяМетода", ПолноеИмяМетода); - Описание.Вставить("Теги", Тест.Теги); Описание.Вставить("Режим", Режим); Описание.Вставить("ДатаСтарта", 0); Описание.Вставить("Длительность", 0); @@ -702,8 +706,12 @@ Функция БазовоеОписаниеРегистрируемогоОбъекта() Описание = Новый Структура(); + + Описание.Вставить("Теги", Новый Массив); + Описание.Вставить("НастройкиВыполнения", Новый Структура()); Описание.Вставить("Зависимости", Новый Массив()); + Описание.Вставить("Ошибки", Новый Массив); Возврат Описание; @@ -713,10 +721,14 @@ Функция БазовоеОписаниеИсполняемогоОбъекта(РегистрируемыйОбъекта) Описание = Новый Структура(); - Описание.Вставить("Ошибки", ЮТКоллекции.СкопироватьМассив(РегистрируемыйОбъекта.Ошибки)); + + Описание.Вставить("Теги", ЮТКоллекции.СкопироватьМассив(РегистрируемыйОбъекта.Теги)); + Описание.Вставить("НастройкиВыполнения", ЮТКоллекции.СкопироватьСтруктуру(РегистрируемыйОбъекта.НастройкиВыполнения)); Описание.Вставить("Зависимости", ЮТКоллекции.СкопироватьМассив(РегистрируемыйОбъекта.Зависимости)); + Описание.Вставить("Ошибки", ЮТКоллекции.СкопироватьМассив(РегистрируемыйОбъекта.Ошибки)); + Возврат Описание; КонецФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 54d6fbce5..b9b0e28de 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -22,9 +22,9 @@ Контекст = ЮТКонтекстСлужебный.КонтекстЧитателя(); - НормализованноеИмяРасширения = УдалитьНедопустимыеСимволыИзСтрокиКакКлючаСтруктуры(ИмяРасширения); + НормализованноеИмяРасширения = НРег(ИмяРасширения); - Возврат НЕ Контекст.Фильтр.ЕстьФильтрРасширений ИЛИ Контекст.Фильтр.Расширения.Свойство(НормализованноеИмяРасширения); + Возврат НЕ Контекст.Фильтр.ЕстьФильтрРасширений ИЛИ Контекст.Фильтр.Расширения[НормализованноеИмяРасширения] <> Неопределено; КонецФункции @@ -41,88 +41,48 @@ // Отфильтровать тестовые наборы. // // Параметры: -// ТестовыеНаборы - Массив из см. ЮТФабрикаСлужебный.ОписаниеТестовогоНабора - Тестовые наборы -// ОписаниеМодуля - Структура - Описание модуля, которому принадлежат наборы, см. ЮТФабрикаСлужебный.ОписаниеМодуля -// -// Возвращаемое значение: -// Массив из см. ЮТФабрикаСлужебный.ОписаниеТестовогоНабора - Отфильтрованные наборы -Функция ОтфильтроватьТестовыеНаборы(ТестовыеНаборы, ОписаниеМодуля) Экспорт +// ОписаниеТестовогоМодуля - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля +Процедура ОтфильтроватьТестовыеНаборы(ОписаниеТестовогоМодуля) Экспорт - Контекст = ЮТКонтекстСлужебный.КонтекстЧитателя(); + Фильтр = ЮТКонтекстСлужебный.КонтекстЧитателя().Фильтр; - Если НЕ Контекст.Фильтр.ЕстьФильтрТестов И НЕ Контекст.Фильтр.ЕстьФильтрКонтекстов Тогда - Возврат ТестовыеНаборы; + Если НЕ Фильтр.ЕстьФильтрТестов И НЕ Фильтр.ЕстьФильтрКонтекстов И НЕ Фильтр.ЕстьФильтрТегов Тогда + Возврат; КонецЕсли; + НаборыТестов = ОписаниеТестовогоМодуля.НаборыТестов; + МетаданныеМодуля = ОписаниеТестовогоМодуля.МетаданныеМодуля; + Результат = Новый Массив(); - Если Контекст.Фильтр.ЕстьФильтрТестов Тогда - ДоступныеТестовыеМетоды = Новый Соответствие(); - - Для Каждого ОписаниеИмениТеста Из Контекст.Фильтр.Тесты Цикл - - Если СтрСравнить(ОписаниеИмениТеста.ИмяМодуля, ОписаниеМодуля.Имя) = 0 Тогда - ОписаниеИмениТеста.ИмяМетода = ВРег(ОписаниеИмениТеста.ИмяМетода); - - СохраненноеОписаниеИмени = ДоступныеТестовыеМетоды[ОписаниеИмениТеста.ИмяМетода]; - - Если СохраненноеОписаниеИмени = Неопределено И ОписаниеИмениТеста.Контекст = Неопределено Тогда - ДоступныеТестовыеМетоды.Вставить(ВРег(ОписаниеИмениТеста.ИмяМетода), ОписаниеИмениТеста); - ИначеЕсли СохраненноеОписаниеИмени = Неопределено Тогда - ОписаниеИмениТеста.Контекст = ЮТКоллекции.ЗначениеВМассиве(ОписаниеИмениТеста.Контекст); - ДоступныеТестовыеМетоды.Вставить(ВРег(ОписаниеИмениТеста.ИмяМетода), ОписаниеИмениТеста); - ИначеЕсли ОписаниеИмениТеста.Контекст = Неопределено Тогда - СохраненноеОписаниеИмени.Контекст = Неопределено; // Без фильтрации контекста теста, возьмом из самого теста контексты - ИначеЕсли СохраненноеОписаниеИмени.Контекст <> Неопределено Тогда - СохраненноеОписаниеИмени.Контекст.Добавить(ОписаниеИмениТеста.Контекст); - Иначе - // Если было имя теста без контекста, то будет вызов во всех контекстах - КонецЕсли; - КонецЕсли; - - КонецЦикла; - - КонецЕсли; + СостояниеФильтрации = Новый Структура; + ДоступныеТестовыеМетоды(Фильтр, МетаданныеМодуля, СостояниеФильтрации); - Для Каждого Набор Из ТестовыеНаборы Цикл + Для Каждого Набор Из НаборыТестов Цикл + + Если НЕ ЭтоПодходящийНабор(Набор, Фильтр) Тогда + Продолжить; + КонецЕсли; ОтфильтрованныйНабор = ЮТФабрикаСлужебный.ОписаниеТестовогоНабора(Набор.Имя); ЗаполнитьЗначенияСвойств(ОтфильтрованныйНабор, Набор, , "Тесты"); + ОбработатьТегиНабора(ОписаниеТестовогоМодуля, Набор, Фильтр, СостояниеФильтрации); + Для Каждого Тест Из Набор.Тесты Цикл - КонтекстыТеста = Неопределено; + ТестПодходитПодФильтр = ФильтрТестов(Тест, Фильтр, СостояниеФильтрации) + И ФильтрКонтекста(Тест, Фильтр) + И ФильтрТегов(Тест, Фильтр, СостояниеФильтрации); - Если ДоступныеТестовыеМетоды <> Неопределено Тогда - ОписаниеИмениТеста = ДоступныеТестовыеМетоды[ВРег(Тест.Имя)]; + Если ТестПодходитПодФильтр Тогда - Если ОписаниеИмениТеста = Неопределено Тогда - Продолжить; - КонецЕсли; + ОтфильтрованныйТест = ЮТФабрикаСлужебный.ОписаниеТеста(Тест.Имя, "", ""); + ЗаполнитьЗначенияСвойств(ОтфильтрованныйТест, Тест); + ОтфильтрованныйНабор.Тесты.Добавить(ОтфильтрованныйТест); - КонтекстыТеста = ОписаниеИмениТеста.Контекст; - - КонецЕсли; - - Если КонтекстыТеста = Неопределено Тогда - КонтекстыТеста = Тест.КонтекстВызова; - КонецЕсли; - - Если Контекст.Фильтр.ЕстьФильтрКонтекстов Тогда - КонтекстыТеста = ЮТКоллекции.ПересечениеМассивов(КонтекстыТеста, Контекст.Фильтр.Контексты); - КонецЕсли; - - Если КонтекстыТеста.Количество() = 0 Тогда - // Возможно стоит такие выводить в лог с ошибкой "по переданным параметрам контекст теста не определен" - Продолжить; КонецЕсли; - ОтфильтрованныйТест = ЮТФабрикаСлужебный.ОписаниеТеста(Тест.Имя, "", ""); - ЗаполнитьЗначенияСвойств(ОтфильтрованныйТест, Тест, , "КонтекстВызова"); - ОтфильтрованныйТест.КонтекстВызова = КонтекстыТеста; - - ОтфильтрованныйНабор.Тесты.Добавить(ОтфильтрованныйТест); - КонецЦикла; Если ОтфильтрованныйНабор.Тесты.Количество() Тогда @@ -131,33 +91,30 @@ КонецЦикла; - Возврат Результат; + ОписаниеТестовогоМодуля.НаборыТестов = Результат; -КонецФункции +КонецПроцедуры -// Фильтр -// Конструктур фильтра поиска тестовых методов +// Конструктор фильтра поиска тестовых методов // // Возвращаемое значение: // Структура - Фильтр: // * Расширения - Структура - Имена расширений // * Модули - Структура - Имена модулей -// * Наборы - Массив из Строка - Имена тестовых наборов -// * Теги - Массив из Строка +// * Наборы - Соответствие из Строка - Имена тестовых наборов +// * Теги - Соответствие из Строка // * Контексты - Массив из Строка - Контексты вызова тестовых методов // * Тесты - Массив из см. ОписаниеИмениТеста - Список путей к тестовым методам -// * Пути - Массив из Строка Функция Фильтр() Экспорт //@skip-check structure-consructor-too-many-keys - Фильтр = Новый Структура("Расширения, Модули, Наборы, Теги, Контексты, Пути, Тесты"); + Фильтр = Новый Структура("Расширения, Модули, Наборы, Теги, Контексты, Тесты"); - Фильтр.Расширения = Новый Структура(); + Фильтр.Расширения = Новый Соответствие(); Фильтр.Модули = Новый Структура(); - Фильтр.Теги = Новый Массив(); + Фильтр.Теги = Новый Соответствие(); Фильтр.Контексты = Новый Массив(); - Фильтр.Наборы = Новый Массив(); - Фильтр.Пути = Новый Массив(); + Фильтр.Наборы = Новый Соответствие(); Фильтр.Тесты = Новый Массив(); //@skip-check constructor-function-return-section @@ -173,16 +130,12 @@ Тесты = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапускаТестов.filter, "tests", Новый Массив); Теги = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапускаТестов.filter, "tags", Новый Массив); - // TODO: Подумать в каком формате задать наборы - ИмяМодуля.Набор, Набор или другой вариант Наборы = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапускаТестов.filter, "suites", Новый Массив); - // TODO: Обработка путей в формате: Модуль.ИмяТеста, ИмяТеста - метод, параметры, контекст - // ОМ_ЮТУтверждения.Что[0: 1].Сервер, ОМ_ЮТУтверждения.Что[1: Структура].Сервер - Пути = ЮТКоллекции.ЗначениеСтруктуры(ПараметрыЗапускаТестов.filter, "paths", Новый Массив); Фильтр = Фильтр(); - Фильтр.Расширения = МассивВСтруктуру(Расширения); - Фильтр.Модули = МассивВСтруктуру(Модули); + Фильтр.Расширения = МассивВСоответствие(Расширения); + Фильтр.Модули = ЮТКоллекции.МассивВСтруктуру(Модули); Если Контексты = Неопределено Тогда Фильтр.Контексты = ЮТФабрикаСлужебный.КонтекстыПриложения(); @@ -191,15 +144,11 @@ КонецЕсли; Если ЗначениеЗаполнено(Теги) Тогда - Фильтр.Теги = Теги; + Фильтр.Теги = МассивВСоответствие(Теги); КонецЕсли; Если ЗначениеЗаполнено(Наборы) Тогда - Фильтр.Наборы = Наборы; - КонецЕсли; - - Если ЗначениеЗаполнено(Пути) Тогда - Фильтр.Пути = Пути; + Фильтр.Наборы = МассивВСоответствие(Наборы); КонецЕсли; МодулиТестов = Новый Структура(); @@ -232,8 +181,10 @@ Фильтр.Вставить("ЕстьФильтрРасширений", Фильтр.Расширения.Количество() > 0); Фильтр.Вставить("ЕстьФильтрМодулей", МодулиТестов.Количество() ИЛИ Фильтр.Модули.Количество()); - Фильтр.Вставить("ЕстьФильтрТестов", Фильтр.Тесты.Количество()); + Фильтр.Вставить("ЕстьФильтрНаборов", ЗначениеЗаполнено(Фильтр.Наборы)); + Фильтр.Вставить("ЕстьФильтрТестов", Фильтр.Тесты.Количество() > 0 ); Фильтр.Вставить("ЕстьФильтрКонтекстов", ЗначениеЗаполнено(Фильтр.Контексты)); + Фильтр.Вставить("ЕстьФильтрТегов", ЗначениеЗаполнено(Фильтр.Теги)); ЮТКонтекстСлужебный.УстановитьКонтекстЧитателя(Новый Структура("Фильтр", Фильтр)); @@ -243,51 +194,159 @@ #Область СлужебныеПроцедурыИФункции -Функция МассивВСтруктуру(Значения) +Функция ОписаниеИмениТеста(Путь) - Результат = Новый Структура(); + Части = СтрРазделить(Путь, "."); - Если НЕ ЗначениеЗаполнено(Значения) Тогда - Возврат Результат; + Если Части.Количество() <= 1 ИЛИ Части.Количество() > 3 Тогда + ВызватьИсключение СтрШаблон("Не корректный формат пути к тесту `%1`, должен быть в формате `ИмяМодуля.ИмяМетода{.Контекст}`", Путь); КонецЕсли; - Для Каждого Значение Из Значения Цикл + Описание = Новый Структура("ИмяМодуля, ИмяМетода, Контекст"); + + Для Инд = 0 По Части.ВГраница() Цикл + Части[Инд] = СокрЛП(Части[Инд]); + КонецЦикла; + + Описание.ИмяМодуля = Части[0]; + Описание.ИмяМетода = Части[1]; + Если Части.Количество() > 2 Тогда + Описание.Контекст = Части[2]; + КонецЕсли; + + Возврат Описание; + +КонецФункции + +Процедура ДоступныеТестовыеМетоды(Фильтр, ОписаниеМодуля, СостояниеФильтрации) + + Если НЕ Фильтр.ЕстьФильтрТестов Тогда + Возврат; + КонецЕсли; + + ДоступныеТестовыеМетоды = Новый Соответствие(); + + Для Каждого ОписаниеИмениТеста Из Фильтр.Тесты Цикл - НормализованноеЗначение = УдалитьНедопустимыеСимволыИзСтрокиКакКлючаСтруктуры(Значение); - Результат.Вставить(НормализованноеЗначение); + Если СтрСравнить(ОписаниеИмениТеста.ИмяМодуля, ОписаниеМодуля.Имя) = 0 Тогда + ОписаниеИмениТеста.ИмяМетода = ВРег(ОписаниеИмениТеста.ИмяМетода); + + СохраненноеОписаниеИмени = ДоступныеТестовыеМетоды[ОписаниеИмениТеста.ИмяМетода]; + + Если СохраненноеОписаниеИмени = Неопределено И ОписаниеИмениТеста.Контекст = Неопределено Тогда + ДоступныеТестовыеМетоды.Вставить(ВРег(ОписаниеИмениТеста.ИмяМетода), ОписаниеИмениТеста); + ИначеЕсли СохраненноеОписаниеИмени = Неопределено Тогда + ОписаниеИмениТеста.Контекст = ЮТКоллекции.ЗначениеВМассиве(ОписаниеИмениТеста.Контекст); + ДоступныеТестовыеМетоды.Вставить(ВРег(ОписаниеИмениТеста.ИмяМетода), ОписаниеИмениТеста); + ИначеЕсли ОписаниеИмениТеста.Контекст = Неопределено Тогда + СохраненноеОписаниеИмени.Контекст = Неопределено; // Без фильтрации контекста теста, возьмем из самого теста контексты + ИначеЕсли СохраненноеОписаниеИмени.Контекст <> Неопределено Тогда + СохраненноеОписаниеИмени.Контекст.Добавить(ОписаниеИмениТеста.Контекст); + Иначе + // Если было имя теста без контекста, то будет вызов во всех контекстах + КонецЕсли; + КонецЕсли; КонецЦикла; - Возврат Результат; + СостояниеФильтрации.Вставить("ДоступныеТестовыеМетоды", ДоступныеТестовыеМетоды); + +КонецПроцедуры + +Процедура ОбработатьТегиНабора(ОписаниеМодуля, Набор, Фильтр, СостояниеФильтрации) + + Если НЕ Фильтр.ЕстьФильтрТегов Тогда + Возврат; + КонецЕсли; + + ПодходитПодФильтрТегов = ПодходитПодФильтрТегов(Фильтр, ОписаниеМодуля.Теги) Или ПодходитПодФильтрТегов(Фильтр, Набор.Теги); + СостояниеФильтрации.Вставить("ПодходитПодФильтрТегов", ПодходитПодФильтрТегов); + +КонецПроцедуры + +Функция ПодходитПодФильтрТегов(Фильтр, Теги) + + Для Каждого Тег Из Теги Цикл + + Если Фильтр.Теги[НРег(Тег)] <> Неопределено Тогда + Возврат Истина; + КонецЕсли; + + КонецЦикла; + + Возврат Ложь; КонецФункции -Функция УдалитьНедопустимыеСимволыИзСтрокиКакКлючаСтруктуры(СтрокаКакКлюч) - // TODO Переработать. Не модифицировать значение - Возврат СтрЗаменить(СтрокаКакКлюч, ".", ""); +Функция ЭтоПодходящийНабор(Набор, Фильтр) + + Возврат НЕ Фильтр.ЕстьФильтрНаборов Или Фильтр.Наборы[НРег(Набор.Имя)] <> Неопределено; + КонецФункции -Функция ОписаниеИмениТеста(Путь) +Функция ФильтрТестов(Тест, Фильтр, СостояниеФильтрации) - Части = СтрРазделить(Путь, "."); + Если НЕ Фильтр.ЕстьФильтрТестов Тогда + Возврат Истина; + КонецЕсли; - Если Части.Количество() <= 1 ИЛИ Части.Количество() > 3 Тогда - ВызватьИсключение СтрШаблон("Не корректный формат пути к тесту `%1`, должен быть в формате `ИмяМодуля.ИмяМетода{.Контекст}`", Путь); + ФильтрТеста = СостояниеФильтрации.ДоступныеТестовыеМетоды[ВРег(Тест.Имя)]; + + Если ФильтрТеста = Неопределено Тогда + Возврат Ложь; КонецЕсли; - Описание = Новый Структура("ИмяМодуля, ИмяМетода, Контекст"); + Если ЗначениеЗаполнено(ФильтрТеста.Контекст) Тогда + Тест.КонтекстВызова = ЮТКоллекции.ПересечениеМассивов(Тест.КонтекстВызова, ФильтрТеста.Контекст); + КонецЕсли; - Для Инд = 0 По Части.ВГраница() Цикл - Части[Инд] = СокрЛП(Части[Инд]); + Возврат ЗначениеЗаполнено(Тест.КонтекстВызова); + +КонецФункции + +Функция ФильтрКонтекста(Тест, Фильтр) + + Если НЕ Фильтр.ЕстьФильтрКонтекстов Тогда + Возврат Истина; + КонецЕсли; + + Тест.КонтекстВызова = ЮТКоллекции.ПересечениеМассивов(Тест.КонтекстВызова, Фильтр.Контексты); + + Возврат ЗначениеЗаполнено(Тест.КонтекстВызова); + +КонецФункции + +Функция ФильтрТегов(Тест, Фильтр, СостояниеФильтрации) + + Если НЕ Фильтр.ЕстьФильтрТегов Или СостояниеФильтрации.ПодходитПодФильтрТегов Тогда + Возврат Истина; + КонецЕсли; + + Для Каждого Тег Из Тест.Теги Цикл + + Если Фильтр.Теги[НРег(Тег)] <> Неопределено Тогда + Возврат Истина; + КонецЕсли; + КонецЦикла; - Описание.ИмяМодуля = Части[0]; - Описание.ИмяМетода = Части[1]; - Если Части.Количество() > 2 Тогда - Описание.Контекст = Части[2]; + Возврат Ложь; + +КонецФункции + +Функция МассивВСоответствие(Значения) + + Результат = Новый Соответствие(); + + Если НЕ ЗначениеЗаполнено(Значения) Тогда + Возврат Результат; КонецЕсли; - Возврат Описание; + Для Каждого Значение Из Значения Цикл + Результат.Вставить(НРег(Значение), Истина); + КонецЦикла; + + Возврат Результат; КонецФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 3aeea5960..114a5ea1a 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -62,9 +62,8 @@ Функция ИсполняемыеСценарииМодуля(Знач МетаданныеМодуля) Экспорт ЭтоТестовыйМодуль = Истина; - ОписаниеТестовогоМодуля = ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля(МетаданныеМодуля, Новый Массив); - ЮТТестыСлужебный.ПередЧтениемСценариевМодуля(МетаданныеМодуля); + ЮТСобытияСлужебный.ПередЧтениемСценариевМодуля(МетаданныеМодуля); ПолноеИмяМетода = МетаданныеМодуля.Имя + "." + ИмяМетодаСценариев(); Ошибка = ЮТМетодыСлужебный.ВыполнитьМетод(ПолноеИмяМетода); @@ -88,16 +87,15 @@ НаборПоУмолчанию = ЮТФабрикаСлужебный.ОписаниеТестовогоНабора(МетаданныеМодуля.Имя); ЮТРегистрацияОшибокСлужебный.ЗарегистрироватьОшибкуЧтенияТестов(НаборПоУмолчанию, "Ошибка формирования списка тестовых методов", Ошибка); + + ОписаниеТестовогоМодуля = ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля(МетаданныеМодуля, Новый Массив); ОписаниеТестовогоМодуля.НаборыТестов.Добавить(НаборПоУмолчанию); ИначеЕсли ЭтоТестовыйМодуль Тогда - ЮТТестыСлужебный.ПослеЧтенияСценариевМодуля(); - Сценарии = ЮТТестыСлужебный.СценарииМодуля(); - - ОписаниеТестовогоМодуля.НаборыТестов = ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(Сценарии.ТестовыеНаборы, МетаданныеМодуля); - ОписаниеТестовогоМодуля.НастройкиВыполнения = Сценарии.НастройкиВыполнения; - ОписаниеТестовогоМодуля.Зависимости = Сценарии.Зависимости; + ОписаниеТестовогоМодуля = ЮТТестыСлужебный.ОписаниеМодуля(); + ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(ОписаниеТестовогоМодуля); + ЮТСобытияСлужебный.ПослеЧтенияСценариевМодуля(ОписаниеТестовогоМодуля); Иначе diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\265\321\201\321\202/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\265\321\201\321\202/Module.bsl" index a07264230..b8d45af82 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\265\321\201\321\202/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\265\321\201\321\202/Module.bsl" @@ -90,7 +90,7 @@ // Умный контекст, в который можно сохранять и получать из него промежуточные данные // Этот контекст работает с см. КонтекстТеста, см. КонтекстТестовогоНабора и см. КонтекстМодуля. -// При получении значения оно ущется во всех 3 контекста поочереди. +// При получении значения выполняется поиск во всех 3 контекста поочереди. // При установке значения, оно устанавливается в текущий контекст, например, в событии перед тестовым наборов в м. КонтекстТестовогоНабора // // Возвращаемое значение: @@ -163,7 +163,7 @@ КонецФункции -// Преостанавливает поток выполнения на указанное количество секунд +// Приостанавливает поток выполнения на указанное количество секунд // // Параметры: // Время - Число - Продолжительность паузы в секундах, возможно указывать дробное значение diff --git a/exts/yaxunit/src/Configuration/Configuration.mdo b/exts/yaxunit/src/Configuration/Configuration.mdo index 829499ea0..1acfe00b0 100644 --- a/exts/yaxunit/src/Configuration/Configuration.mdo +++ b/exts/yaxunit/src/Configuration/Configuration.mdo @@ -100,6 +100,7 @@ CommonModule.ЮТОтчетJSONСлужебный CommonModule.ЮТОтчетJUnitСлужебный CommonModule.ЮТОтчетСлужебный + CommonModule.ЮТОтчетСлужебныйКлиентСервер CommonModule.ЮТПараметрыЗапускаСлужебный CommonModule.ЮТПодключаемыеМодулиСлужебный CommonModule.ЮТПодключаемыеМодулиСлужебныйВызовСервера diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Form.form" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Form.form" index bcd4f6619..1df9b1f5a 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Form.form" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Form.form" @@ -355,7 +355,6 @@ 8.0 true - Style.NormalTextFont @@ -409,6 +408,59 @@ true + + ДеревоТестовТеги + 147 + true + true + + true + + + ДеревоТестов.Теги + + + ДеревоТестовТегиРасширеннаяПодсказка + 149 + true + true + + true + + Label + true + true + + Left + + + + ДеревоТестовТегиКонтекстноеМеню + 148 + true + true + + true + + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + + Style.FieldSelectionBackColor + + + ДеревоТестовГруппаПрогресс 102 @@ -1444,7 +1496,6 @@ false 12.0 - Style.NormalTextFont Left @@ -1689,6 +1740,24 @@ true + + Теги + + <key>ru</key> + <value>Теги</value> + + 131 + + String + + + + true + + + true + + ДеревоТестов.Ошибки @@ -2003,6 +2072,19 @@ TextPicture DontUse + + АдресХранилища + + String + + + + + ЗагрузитьТесты + + Boolean + + diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" index f0b5e5234..f1de9a9db 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" @@ -31,11 +31,11 @@ &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - Если Параметры.Свойство("АдресХранилища") И ЭтоАдресВременногоХранилища(Параметры.АдресХранилища) Тогда + Если ЭтоАдресВременногоХранилища(Параметры.АдресХранилища) Тогда АдресОтчета = Параметры.АдресХранилища; КонецЕсли; - Параметры.Свойство("ЗагрузитьТесты", ЗагрузитьТестыПриОткрытии); + ЗагрузитьТестыПриОткрытии = Параметры.ЗагрузитьТесты; Для Каждого Формат Из ФорматыВыводаОшибки() Цикл Элементы.ФорматВыводаОшибки.СписокВыбора.Добавить(Формат.Ключ, Формат.Ключ); @@ -251,7 +251,7 @@ КонецФункции -&НаКлиентеНаСервереБезКонтекста +&НаКлиенте Процедура ЗаполнитьОшибки(СтрокаДерева, ОписаниеОбъекта) СтрокаДерева.Ошибки.Очистить(); @@ -284,7 +284,7 @@ КонецФункции -&НаКлиентеНаСервереБезКонтекста +&НаКлиенте Функция НормализоватьКонтекст(Контекст) Если СтрНачинаетсяС(Контекст, "Клиент") Тогда @@ -295,7 +295,7 @@ КонецФункции -&НаКлиентеНаСервереБезКонтекста +&НаКлиенте Процедура ИнкрементСтатистики(Статистика, Статус, Знач Статусы = Неопределено) Если Статусы = Неопределено Тогда @@ -336,7 +336,7 @@ #Область Интерфейсное -&НаСервереБезКонтекста +&НаКлиенте Функция КартинкаСтатуса(Статус) Статусы = ЮТФабрика.СтатусыИсполненияТеста(); @@ -365,7 +365,7 @@ КонецФункции -&НаСервереБезКонтекста +&НаКлиенте Функция ПредставлениеСтатистики(Статистика) БлокиСтатистики = Новый Массив(); @@ -410,7 +410,7 @@ КонецФункции -&НаСервереБезКонтекста +&НаКлиенте Функция ГрафическоеПредставлениеСтатистики(Статистика) Текст = БлокиСтатистики(Статистика); @@ -419,7 +419,7 @@ КонецФункции -&НаСервереБезКонтекста +&НаКлиенте Функция БлокиСтатистики(Статистика) Блоки = Новый Массив(); @@ -492,6 +492,7 @@ СтрокаНабора.ПредставлениеВремяВыполнения = ЮТОбщий.ПредставлениеПродолжительности(Набор.Длительность); СтрокаНабора.ВремяВыполнения = Набор.Длительность; СтрокаНабора.ТипОбъекта = 2; + СтрокаНабора.Теги = СтрСоединить(Набор.Теги, ", "); ЗаполнитьОшибки(СтрокаНабора, Набор); @@ -502,6 +503,7 @@ СтрокаТеста = СтрокаНабора.ПолучитьЭлементы().Добавить(); ОтобразитьРезультатТеста(СтрокаТеста, Тест, Набор); + СтрокаТеста.Теги = СтрСоединить(Тест.Теги, ", "); Тест.Вставить("Идентификатор", СтрокаТеста.ПолучитьИдентификатор()); @@ -938,6 +940,7 @@ Блоки.Добавить(""); КонецПроцедуры + &НаСервереБезКонтекста Функция ЗаменитьСпецСимволы(Знач Стр) diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262/\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262/\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262.mdo" index b1bc26337..dd4c1b2ec 100644 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262/\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262.mdo" +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262/\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262.mdo" @@ -6,5 +6,6 @@ Загрузка тестов true + CommonModule.ЮТТестыСлужебный Subsystem.ЮТПодключаемыеМодули.Subsystem.ОбработчикиСобытий diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276/Module.bsl" index b44f7343a..f9cb364eb 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276/Module.bsl" @@ -20,7 +20,7 @@ Процедура ИсполняемыеСценарии() Экспорт - ЮТТесты + ЮТТесты.Тег("Мокирование") .ДобавитьТест("Обучение") .ДобавитьТест("Обучение_ЦепочкаВызовов") .ДобавитьТест("Проверить") diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276\320\236\320\261\321\203\321\207\320\265\320\275\320\270\320\265/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276\320\236\320\261\321\203\321\207\320\265\320\275\320\270\320\265/Module.bsl" index ec3b4477b..ebd4389f1 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276\320\236\320\261\321\203\321\207\320\265\320\275\320\270\320\265/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276\320\236\320\261\321\203\321\207\320\265\320\275\320\270\320\265/Module.bsl" @@ -20,7 +20,7 @@ Процедура ИсполняемыеСценарии() Экспорт - ЮТТесты + ЮТТесты.Тег("Мокирование") .ДобавитьТест("ВыброситьИсключение") .ДобавитьСерверныйТест("ФормированиеТипыПерехватываемыхОбъектов") ; diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 3cd44a130..8b32adcab 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -20,7 +20,7 @@ Процедура ИсполняемыеСценарии() Экспорт - ЮТТесты + ЮТТесты.Тег("Мокирование") .ДобавитьТест("ДанныеПерехвата") ; diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/Module.bsl" index 8b626e5d9..eb31d2bc1 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\273\320\273\320\265\320\272\321\206\320\270\320\270/Module.bsl" @@ -35,6 +35,7 @@ .ДобавитьТест("ВСоответствие") .ДобавитьТест("ВСтруктуру") .ДобавитьТест("ПредставлениеМассива") + .ДобавитьТест("ОбъединитьМассивы") ; КонецПроцедуры @@ -416,6 +417,22 @@ КонецПроцедуры +Процедура ОбъединитьМассивы() Экспорт + + Коллекция1 = ЮТКоллекции.ЗначениеВМассиве(1, 2); + Коллекция2 = Новый Массив; + Коллекция3 = ЮТКоллекции.ЗначениеВМассиве(3); + Коллекция4 = ЮТКоллекции.ЗначениеВМассиве(4, 5); + + Результат = ЮТКоллекции.ОбъединитьМассивы(Коллекция1, Коллекция2, Коллекция3, Коллекция4); + ЮТест.ОжидаетЧто(Результат) + .ИмеетТип("Массив") + .Заполнено() + .Равно(ЮТКоллекции.ЗначениеВМассиве(1, 2, 3, 4, 5)) + .ИмеетДлину(5); + +КонецПроцедуры + #КонецОбласти #Область СлужебныеПроцедурыИФункции diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\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/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\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/Module.bsl" index 8bf200661..33d020e71 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\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/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\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/Module.bsl" @@ -20,7 +20,8 @@ Процедура ИсполняемыеСценарии() Экспорт - ЮТТесты.УдалениеТестовыхДанных() + ЮТТесты.Вызов(ТегиТестов.Мокирование()) + .УдалениеТестовыхДанных() .ДобавитьТест("ЗаполнитьСправочник") .ДобавитьТест("ЗаполнитьДокумент") .ДобавитьТест("СоздатьЗаписьРегистраСведений") @@ -32,7 +33,7 @@ .ДобавитьТест("СоздатьГруппу") .ДобавитьТест("УстановитьРеквизиты") .ДобавитьТест("УстановитьСсылкуНового") - ; + ; КонецПроцедуры diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 401f31ba9..d72596891 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -24,6 +24,7 @@ .ДобавитьТест("ПараметрыГенерацииОтчета") .ДобавитьТест("ЗаписатьОтчет") .ДобавитьТест("ОписаниеТеста") + .ДобавитьТест("ОписаниеТеста_Теги") ; КонецПроцедуры @@ -42,6 +43,8 @@ Процедура ЗаписатьОтчет() Экспорт РезультатТестирования = ТестовыеДанные.РезультатТестирования(); + РезультатТестирования[0].Теги = ЮТКоллекции.ЗначениеВМассиве("Тестовый модуль"); + Каталог = ЮТест.Данные().НовоеИмяВременногоФайла(); СоздатьКаталог(Каталог); Формат = ЮТОтчетAllureСлужебный.ПараметрыГенерацииОтчета().Форматы.allure; @@ -77,6 +80,23 @@ КонецПроцедуры +Процедура ОписаниеТеста_Теги() Экспорт + + Модуль = ТестовыеДанные.ОписаниеТестовогоМодуля(); + Набор = ТестовыеДанные.ОписаниеТестовогоНабора(Модуль); + Тест = ТестовыеДанные.ОписаниеТеста(Набор); + + Модуль.Теги = ЮТСтроки.РазделитьСтроку("Модуль, Тег1, Тег 2", ","); + Набор.Теги = ЮТСтроки.РазделитьСтроку("Набор, ТЕГ 2, Тег3", ","); + Тест.Теги = СтрРазделить("Тест, тег3, тег4", ", ", Ложь); + ОписаниеТеста = ЮТОтчетAllureСлужебный.ОписаниеТеста(Тест, Набор, Модуль); + + Для Каждого Метка Из ЮТСтроки.РазделитьСтроку("Модуль, Набор, Тест, Тег 2, Тег3, тег4", ",") Цикл + СодержитМетку(ОписаниеТеста, "tag", Метка); + КонецЦикла; + +КонецПроцедуры + #КонецОбласти #Область СлужебныеПроцедурыИФункции diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" index 28e5e21ca..737386fa7 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" @@ -24,6 +24,7 @@ .ДобавитьТест("ДобавитьСтроку") .ДобавитьТест("СтрокаСимволов") .ДобавитьТест("СравнитьВерсии") + .ДобавитьТест("УникальныеСтроки") ; КонецПроцедуры @@ -87,6 +88,19 @@ КонецПроцедуры +Процедура УникальныеСтроки() Экспорт + + Вход = СтрРазделить("Раз,раз, раз,проверка", ","); + + ЮТест.ОжидаетЧто(ЮТСтроки.УникальныеСтроки(Вход)) + .Содержит("Раз") + .НеСодержит("раз") + .Содержит(" раз") + .Содержит("проверка") + .ИмеетДлину(3); + +КонецПроцедуры + #КонецОбласти #Область СлужебныеПроцедурыИФункции diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" index 763942050..ef1678f94 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" @@ -20,7 +20,7 @@ Процедура ИсполняемыеСценарии() Экспорт - ЮТТесты.УдалениеТестовыхДанных() + ЮТТесты.Тег("ТестовыеДанные").УдалениеТестовыхДанных() .ДобавитьТест("Удалить") .ДобавитьТест("ВариантыПараметров") .ДобавитьТест("СоздатьГруппу") diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 7e366d4b8..ea8150efc 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -23,7 +23,7 @@ КодТовара = ЮТОбщий.ЧислоВСтроку(ЮТест.Данные().СлучайноеПоложительноеЧисло(999999999)); Период = ТекущаяДата(); - ЮТТесты.УдалениеТестовыхДанных() + ЮТТесты.Тег("ТестовыеДанные").УдалениеТестовыхДанных() .ДобавитьТест("Фикция") .СПараметрами(Новый ОписаниеТипов("Число")) .СПараметрами(Новый ОписаниеТипов("Строка")) diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index cc1127ed4..acf86ece6 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\244\320\270\320\273\321\214\321\202\321\200\320\260\321\206\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -24,34 +24,41 @@ .ДобавитьТест("ЭтоПодходящееРасширение") .ДобавитьТест("ЭтоПодходящийМодуль") .ДобавитьТест("ОтфильтроватьТестовыеНаборы") - ; + .Добавитьтест("Фильтр_ПолноеИмяТеста") + .Добавитьтест("Фильтр_Контексты") + .Добавитьтест("Фильтр_ТегиМодуля") + .Добавитьтест("Фильтр_ТегиНабора") + .Добавитьтест("Фильтр_ТегиТеста") + .Добавитьтест("Фильтр_Наборы") + ; КонецПроцедуры Процедура ЭтоПодходящееРасширение() Экспорт - Варианты = Новый Массив(); - Ключи = "ИмяРасширения, Параметры, Результат, Описание"; + Варианты = ЮТест.Варианты("ИмяРасширения, Параметры, Результат, Описание"); + Параметры = ЮТФабрика.ПараметрыЗапуска(); Параметры.filter.extensions = ЮТКоллекции.ЗначениеВМассиве("test", "тесты"); - Варианты.Добавить(Новый Структура(Ключи, "test", Параметры, Истина, "Простой кейс")); - Варианты.Добавить(Новый Структура(Ключи, "TeST", Параметры, Истина, "Изменен регистр")); - Варианты.Добавить(Новый Структура(Ключи, "тесты", Параметры, Истина, "Второе расширение")); - Варианты.Добавить(Новый Структура(Ключи, "_test", Параметры, Ложь, "Отсутствующее расширение")); + Варианты.Добавить("test", Параметры, Истина, "Простой кейс"); + Варианты.Добавить("TeST", Параметры, Истина, "Изменен регистр"); + Варианты.Добавить("тесты", Параметры, Истина, "Второе расширение"); + Варианты.Добавить("_test", Параметры, Ложь, "Отсутствующее расширение"); Параметры = ЮТФабрика.ПараметрыЗапуска(); - Варианты.Добавить(Новый Структура(Ключи, "test", Параметры, Истина, "Без фильтр по расширениям 1")); - Варианты.Добавить(Новый Структура(Ключи, "_test", Параметры, Истина, "Без фильтр по расширениям 2")); + Варианты.Добавить("test", Параметры, Истина, "Без фильтр по расширениям 1"); + Варианты.Добавить("_test", Параметры, Истина, "Без фильтр по расширениям 2"); Параметры = ЮТФабрика.ПараметрыЗапуска(); Параметры.filter.tests = ЮТКоллекции.ЗначениеВМассиве("test.method"); - Варианты.Добавить(Новый Структура(Ключи, "test", Параметры, Истина, "Фильтр по пути")); - Варианты.Добавить(Новый Структура(Ключи, "_test", Параметры, Истина, "Фильтр по пути, отпустствующее расширение")); + Варианты.Добавить("test", Параметры, Истина, "Фильтр по пути"); + Варианты.Добавить("_test", Параметры, Истина, "Фильтр по пути, отпустствующее расширение"); - Для Каждого Вариант Из Варианты Цикл + Для Каждого Вариант Из Варианты.СписокВариантов() Цикл - ЮТФильтрацияСлужебный.УстановитьКонтекст(Вариант.Параметры); + УстановитьФильтр(Вариант.Параметры); Результат = ЮТФильтрацияСлужебный.ЭтоПодходящееРасширение(Вариант.ИмяРасширения); + ЮТест.ОжидаетЧто(Результат, Вариант.Описание).Равно(Вариант.Результат); КонецЦикла; @@ -60,90 +67,66 @@ Процедура ЭтоПодходящийМодуль() Экспорт - Варианты = Новый Массив(); - Ключи = "ИмяМодуля, Параметры, Результат, Описание"; + Варианты = ЮТест.Варианты("ИмяМодуля, Параметры, Результат, Описание"); РасширениеПоУмолчанию = "__тесты___"; Параметры = ЮТФабрика.ПараметрыЗапуска(); Параметры.filter.modules = ЮТКоллекции.ЗначениеВМассиве("test", "тесты"); - Варианты.Добавить(Новый Структура(Ключи, "test", Параметры, Истина, "Простой кейс")); - Варианты.Добавить(Новый Структура(Ключи, "TeST", Параметры, Истина, "Изменен регистр")); - Варианты.Добавить(Новый Структура(Ключи, "тесты", Параметры, Истина, "Второй модуль")); - Варианты.Добавить(Новый Структура(Ключи, "_test", Параметры, Ложь, "Отсутствующий модуль")); + + Варианты.Добавить("test", Параметры, Истина, "Простой кейс"); + Варианты.Добавить("TeST", Параметры, Истина, "Изменен регистр"); + Варианты.Добавить("тесты", Параметры, Истина, "Второй модуль"); + Варианты.Добавить("_test", Параметры, Ложь, "Отсутствующий модуль"); Параметры = ЮТФабрика.ПараметрыЗапуска(); - Варианты.Добавить(Новый Структура(Ключи, "module", Параметры, Истина, "Без фильтр по `module`")); - Варианты.Добавить(Новый Структура(Ключи, "_module", Параметры, Истина, "Без фильтр по `_module`")); + + Варианты.Добавить("module", Параметры, Истина, "Без фильтр по `module`"); + Варианты.Добавить("_module", Параметры, Истина, "Без фильтр по `_module`"); Параметры = ЮТФабрика.ПараметрыЗапуска(); Параметры.filter.modules = ЮТКоллекции.ЗначениеВМассиве("module"); Параметры.filter.extensions = ЮТКоллекции.ЗначениеВМассиве(РасширениеПоУмолчанию); - Варианты.Добавить(Новый Структура(Ключи, "module", Параметры, Истина, "Фильтр по модулю и по расширению с пересечением")); + + Варианты.Добавить("module", Параметры, Истина, "Фильтр по модулю и по расширению с пересечением"); Параметры = ЮТФабрика.ПараметрыЗапуска(); Параметры.filter.modules = ЮТКоллекции.ЗначениеВМассиве("module"); Параметры.filter.extensions = ЮТКоллекции.ЗначениеВМассиве("тесты"); - Варианты.Добавить(Новый Структура(Ключи, "module", Параметры, Ложь, "Фильтр по модулю и по расширению без пересечения")); + Варианты.Добавить("module", Параметры, Ложь, "Фильтр по модулю и по расширению без пересечения"); // Фильтрация по именам тестовых методов Параметры = ЮТФабрика.ПараметрыЗапуска(); Параметры.filter.tests = ЮТКоллекции.ЗначениеВМассиве("module.method"); - Варианты.Добавить(Новый Структура(Ключи, "module", Параметры, Истина, "Фильтр по имени теста")); - Варианты.Добавить(Новый Структура(Ключи, "_test", Параметры, Ложь, "Фильтр по имени теста, отсутствующему модулю")); + Варианты.Добавить("module", Параметры, Истина, "Фильтр по имени теста"); + Варианты.Добавить("_test", Параметры, Ложь, "Фильтр по имени теста, отсутствующему модулю"); Параметры = ЮТФабрика.ПараметрыЗапуска(); Параметры.filter.tests = ЮТКоллекции.ЗначениеВМассиве("module.method"); Параметры.filter.extensions = ЮТКоллекции.ЗначениеВМассиве(РасширениеПоУмолчанию); - Варианты.Добавить(Новый Структура(Ключи, "module", Параметры, Истина, "Фильтр по имени теста и по расширению с пересечением")); + Варианты.Добавить("module", Параметры, Истина, "Фильтр по имени теста и по расширению с пересечением"); Параметры = ЮТФабрика.ПараметрыЗапуска(); Параметры.filter.tests = ЮТКоллекции.ЗначениеВМассиве("module.method"); Параметры.filter.extensions = ЮТКоллекции.ЗначениеВМассиве("test"); - Варианты.Добавить(Новый Структура(Ключи, "module", Параметры, Ложь, "Фильтр по имени теста и по расширению без пересечения")); + Варианты.Добавить("module", Параметры, Ложь, "Фильтр по имени теста и по расширению без пересечения"); Параметры = ЮТФабрика.ПараметрыЗапуска(); Параметры.filter.tests = ЮТКоллекции.ЗначениеВМассиве("module.method"); Параметры.filter.modules = ЮТКоллекции.ЗначениеВМассиве("module"); - Варианты.Добавить(Новый Структура(Ключи, "module", Параметры, Истина, "Фильтр по имени теста и по модулю с пересечением")); + Варианты.Добавить("module", Параметры, Истина, "Фильтр по имени теста и по модулю с пересечением"); Параметры = ЮТФабрика.ПараметрыЗапуска(); Параметры.filter.tests = ЮТКоллекции.ЗначениеВМассиве("module.method"); Параметры.filter.modules = ЮТКоллекции.ЗначениеВМассиве("test"); - Варианты.Добавить(Новый Структура(Ключи, "module", Параметры, Ложь, "Фильтр по имени теста и по модулю без пересечения")); + Варианты.Добавить("module", Параметры, Ложь, "Фильтр по имени теста и по модулю без пересечения"); - Для Каждого Вариант Из Варианты Цикл - - ЮТФильтрацияСлужебный.УстановитьКонтекст(Вариант.Параметры); - ОписаниеМодуля = ЮТФабрикаСлужебный.ОписаниеМодуля(); - ОписаниеМодуля.Имя = Вариант.ИмяМодуля; - ОписаниеМодуля.Расширение = РасширениеПоУмолчанию; - Результат = ЮТФильтрацияСлужебный.ЭтоПодходящийМодуль(ОписаниеМодуля); - ЮТест.ОжидаетЧто(Результат, Вариант.Описание + ". Имя модуля:" + Вариант.ИмяМодуля).Равно(Вариант.Результат); + Для Каждого Вариант Из Варианты.СписокВариантов() Цикл - КонецЦикла; - -КонецПроцедуры - -Процедура ЭтоПодходящийМетод() Экспорт - - Варианты = Новый Массив(); - Ключи = "ИмяМодуля, Параметры, Результат, Описание"; - РасширениеПоУмолчанию = "__тесты___"; - - Параметры = ЮТФабрика.ПараметрыЗапуска(); - Параметры.filter.modules = ЮТКоллекции.ЗначениеВМассиве("test", "тесты"); - Варианты.Добавить(Новый Структура(Ключи, "test", Параметры, Истина, "Простой кейс")); - Варианты.Добавить(Новый Структура(Ключи, "TeST", Параметры, Истина, "Изменен регистр")); - Варианты.Добавить(Новый Структура(Ключи, "тесты", Параметры, Истина, "Второй модуль")); - Варианты.Добавить(Новый Структура(Ключи, "_test", Параметры, Ложь, "Отсутствующий модуль")); - - Для Каждого Вариант Из Варианты Цикл + УстановитьФильтр(Вариант.Параметры); + ОписаниеМодуля = МетаданныеМодуля(Вариант.ИмяМодуля, РасширениеПоУмолчанию); - ЮТФильтрацияСлужебный.УстановитьКонтекст(Вариант.Параметры); - ОписаниеМодуля = ЮТФабрикаСлужебный.ОписаниеМодуля(); - ОписаниеМодуля.Имя = Вариант.ИмяМодуля; - ОписаниеМодуля.Расширение = РасширениеПоУмолчанию; Результат = ЮТФильтрацияСлужебный.ЭтоПодходящийМодуль(ОписаниеМодуля); + ЮТест.ОжидаетЧто(Результат, Вариант.Описание + ". Имя модуля:" + Вариант.ИмяМодуля).Равно(Вариант.Результат); КонецЦикла; @@ -155,67 +138,280 @@ // 1 Контексты = ЮТФабрика.КонтекстыВызова(); - ОписаниеМодуля = ЮТФабрикаСлужебный.ОписаниеМодуля(); - ОписаниеМодуля.Имя = "ТестовыйМодуль"; - ОписаниеМодуля.Расширение = "ТестовоеРасширение"; - ОписаниеМодуля.Сервер = Истина; - ОписаниеМодуля.КлиентУправляемоеПриложение = Истина; - - Наборы = Новый Массив(); - Набор = ЮТФабрикаСлужебный.ОписаниеТестовогоНабора("Тесты"); - Тест = ЮТФабрикаСлужебный.ОписаниеТеста("Тест1", "Тест 1", ЮТКоллекции.ЗначениеВМассиве(Контексты.Сервер, Контексты.КлиентУправляемоеПриложение)); + Набор = ОписаниеНабораТестов("Тесты"); + Тест = ОписаниеТеста("Тест1","Сервер, КлиентУправляемоеПриложение"); Набор.Тесты.Добавить(Тест); - Наборы.Добавить(Набор); - Параметры = ЮТФабрика.ПараметрыЗапуска(); - Параметры.filter.tests = ЮТКоллекции.ЗначениеВМассиве("ТестовыйМодуль.Тест1"); - ЮТФильтрацияСлужебный.УстановитьКонтекст(Параметры); + ОписаниеМодуля = ОписаниеМодуля(); + ОписаниеМодуля.МетаданныеМодуля.Сервер = Истина; + ОписаниеМодуля.МетаданныеМодуля.КлиентУправляемоеПриложение = Истина; - Результат = ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(Наборы, ОписаниеМодуля); - ЮТест.ОжидаетЧто(Результат, "Результат фильтрации") - .Заполнено() - .ИмеетТип("Массив"); - НаборРезультата = Результат[0]; - ЮТест.ОжидаетЧто(НаборРезультата, "Набор результата") + ДобавитьКопиюНабора(ОписаниеМодуля, Набор); + + УстановитьНовыйФильтр(, "ТестовыйМодуль.Тест1"); + + ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(ОписаниеМодуля); + ЮТест.ОжидаетЧто(ОписаниеМодуля.НаборыТестов, "Результат фильтрации") .Заполнено() - .Свойство("Имя").Равно(Набор.Имя) - .Свойство("Представление").Равно(Набор.Представление) - .Свойство("Тесты").Заполнено(); - ТестРезультата = НаборРезультата.Тесты[0]; - ЮТест.ОжидаетЧто(ТестРезультата, "Тест результата") - .Свойство("Имя").Равно(Тест.Имя) - .Свойство("КонтекстВызова").ИмеетДлину(2); + .Свойство("[0].Тесты").Заполнено() + .Что(ОписаниеМодуля.НаборыТестов[0].Тесты[0], "Тест результата") + .Свойство("Имя").Равно("Тест1") + .Свойство("КонтекстВызова").ИмеетДлину(2); // 2 - Параметры = ЮТФабрика.ПараметрыЗапуска(); - Параметры.filter.tests = ЮТКоллекции.ЗначениеВМассиве("ТестовыйМодуль.Тест1.Сервер"); - ЮТФильтрацияСлужебный.УстановитьКонтекст(Параметры); + ОписаниеМодуля.НаборыТестов.Очистить(); + ДобавитьКопиюНабора(ОписаниеМодуля, Набор); + УстановитьНовыйФильтр(, "ТестовыйМодуль.Тест1.Сервер"); - Результат = ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(Наборы, ОписаниеМодуля); - ТестРезультата = Результат[0].Тесты[0]; - ЮТест.ОжидаетЧто(ТестРезультата, "Тест с указанием контекста") + ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(ОписаниеМодуля); + ЮТест.ОжидаетЧто(ОписаниеМодуля.НаборыТестов[0].Тесты[0], "Тест с указанием контекста") .Свойство("Имя").Равно(Тест.Имя) .Свойство("КонтекстВызова").ИмеетДлину(1); // 3 - Параметры = ЮТФабрика.ПараметрыЗапуска(); - Параметры.filter.tests = ЮТКоллекции.ЗначениеВМассиве("ТестовыйМодуль.Тест1.ВызовСервера"); - ЮТФильтрацияСлужебный.УстановитьКонтекст(Параметры); + ОписаниеМодуля.НаборыТестов.Очистить(); + ДобавитьКопиюНабора(ОписаниеМодуля, Набор); + УстановитьНовыйФильтр(, "ТестовыйМодуль.Тест1.ВызовСервера"); - Результат = ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(Наборы, ОписаниеМодуля); - ЮТест.ОжидаетЧто(Результат, "Тест с указаниме недоступного контекста") - .ИмеетДлину(1); + ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(ОписаниеМодуля); + ЮТест.ОжидаетЧто(ОписаниеМодуля.НаборыТестов, "Тест с указаниме недоступного контекста") + .ИмеетДлину(0); // 4 + ОписаниеМодуля.НаборыТестов.Очистить(); + ДобавитьКопиюНабора(ОписаниеМодуля, Набор); + УстановитьНовыйФильтр(, "ТестовыйМодуль.Тест1.Сервер", "КлиентУправляемоеПриложение"); + + ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(ОписаниеМодуля); + ЮТест.ОжидаетЧто(ОписаниеМодуля.НаборыТестов, "Тест с указаниме контекста и фильтра контекстов") + .ИмеетДлину(0); + +КонецПроцедуры + +Процедура Фильтр_ПолноеИмяТеста() Экспорт + + ИмяМодуля = "ТестовыйМодуль"; + ИмяТеста = "ТестовыйТест"; + + ОписаниеМодуля = ОписаниеМодуля(ИмяМодуля); + НаборТестов = ОписаниеНабораТестов(); + НаборТестов.Тесты.Добавить(ОписаниеТеста(ИмяТеста)); + НаборТестов.Тесты.Добавить(ОписаниеТеста(ИмяТеста, "Сервер")); + НаборТестов.Тесты.Добавить(ОписаниеТеста(ИмяТеста + "_")); + НаборТестов.Тесты.Добавить(ОписаниеТеста(ИмяТеста, "НеСервер")); + НаборТестов.Тесты.Добавить(ОписаниеТеста()); + ДобавитьКопиюНабора(ОписаниеМодуля, НаборТестов); + + УстановитьНовыйФильтр(, СтрШаблон("%1.%2", ИмяМодуля, ИмяТеста)); + ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(ОписаниеМодуля); + + ЮТест.ОжидаетЧто(ОписаниеМодуля.НаборыТестов) + .ИмеетДлину(1) + .Свойство("[0].Тесты").ИмеетДлину(2); + + УстановитьНовыйФильтр(, СтрШаблон("%1.%2.КлиентУправляемоеПриложение", ИмяМодуля, ИмяТеста)); + ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(ОписаниеМодуля); + + ЮТест.ОжидаетЧто(ОписаниеМодуля.НаборыТестов) + .ИмеетДлину(1) + .Свойство("[0].Тесты").ИмеетДлину(1); + +КонецПроцедуры + +Процедура Фильтр_Контексты() Экспорт + + ОписаниеМодуля = ОписаниеМодуля(); + НаборТестов = ОписаниеНабораТестов(); + НаборТестов.Тесты.Добавить(ОписаниеТеста()); // + + НаборТестов.Тесты.Добавить(ОписаниеТеста(, "Сервер")); // + + НаборТестов.Тесты.Добавить(ОписаниеТеста(, "Сервер, Сервер")); // + + НаборТестов.Тесты.Добавить(ОписаниеТеста(, "Клиент")); + ОписаниеМодуля.НаборыТестов.Добавить(НаборТестов); + + УстановитьНовыйФильтр(, , "Сервер"); + ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(ОписаниеМодуля); + + ЮТест.ОжидаетЧто(ОписаниеМодуля.НаборыТестов) + .ИмеетДлину(1) + .Свойство("[0].Тесты").ИмеетДлину(3); + +КонецПроцедуры + +Процедура Фильтр_ТегиТеста() Экспорт + + ОписаниеМодуля = ОписаниеМодуляДляТестированияФильтрации(); + + УстановитьНовыйФильтр(, , , "Тег Теста1, ТегТеста2, Т, _, Тег111"); + ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(ОписаниеМодуля); + + ЮТест.ОжидаетЧто(ОписаниеМодуля.НаборыТестов) + .ИмеетДлину(2) + .Свойство("[0].Тесты").ИмеетДлину(3) + .Свойство("[1].Тесты").ИмеетДлину(1); + +КонецПроцедуры + +Процедура Фильтр_ТегиНабора() Экспорт + + ОписаниеМодуля = ОписаниеМодуляДляТестированияФильтрации(); + + УстановитьНовыйФильтр(, , , "Тег Набора"); + ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(ОписаниеМодуля); + + ЮТест.ОжидаетЧто(ОписаниеМодуля.НаборыТестов) + .ИмеетДлину(1) + .Свойство("[0].Тесты").ИмеетДлину(5); + + ОписаниеМодуля = ОписаниеМодуляДляТестированияФильтрации(); + + УстановитьНовыйФильтр(, , , "Тег Набора, ТегТеста"); + ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(ОписаниеМодуля); + + ЮТест.ОжидаетЧто(ОписаниеМодуля.НаборыТестов) + .ИмеетДлину(2) + .Свойство("[0].Тесты").ИмеетДлину(5) + .Свойство("[1].Тесты").ИмеетДлину(1); + +КонецПроцедуры + +Процедура Фильтр_ТегиМодуля() Экспорт + + ОписаниеМодуля = ОписаниеМодуляДляТестированияФильтрации(); + УстановитьНовыйФильтр(, , , "Тег Модуля"); + ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(ОписаниеМодуля); + + ЮТест.ОжидаетЧто(ОписаниеМодуля.НаборыТестов) + .ИмеетДлину(0); + + ОписаниеМодуля = ОписаниеМодуляДляТестированияФильтрации(); + ОписаниеМодуля.Теги.Добавить("Тег Модуля"); + + УстановитьНовыйФильтр(, , , "Тег Модуля"); + ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(ОписаниеМодуля); + + ЮТест.ОжидаетЧто(ОписаниеМодуля.НаборыТестов) + .ИмеетДлину(2) + .Свойство("[0].Тесты").ИмеетДлину(5) + .Свойство("[1].Тесты").ИмеетДлину(2); + +КонецПроцедуры + +Процедура Фильтр_Наборы() Экспорт + + ОписаниеМодуля = ОписаниеМодуляДляТестированияФильтрации(); + ОписаниеМодуля.НаборыТестов[1].Имя = "ТестовыйНабор2"; + УстановитьНовыйФильтр(, , , , "ТестовыйНабор"); + ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(ОписаниеМодуля); + + ЮТест.ОжидаетЧто(ОписаниеМодуля.НаборыТестов) + .ИмеетДлину(1) + .Свойство("[0].Тесты").ИмеетДлину(5) + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Процедура УстановитьНовыйФильтр(Модули = Неопределено, + Тесты = Неопределено, + Контексты = Неопределено, + Теги = Неопределено, + Наборы = Неопределено) + Параметры = ЮТФабрика.ПараметрыЗапуска(); - Параметры.filter.tests = ЮТКоллекции.ЗначениеВМассиве("ТестовыйМодуль.Тест1.Сервер"); - Параметры.filter.contexts = ЮТКоллекции.ЗначениеВМассиве(Контексты.КлиентУправляемоеПриложение); + + Если Наборы <> Неопределено Тогда + Параметры.filter.suites = ЮТСтроки.РазделитьСтроку(Наборы, ","); + КонецЕсли; + + Если Тесты <> Неопределено Тогда + Параметры.filter.tests = ЮТСтроки.РазделитьСтроку(Тесты, ","); + КонецЕсли; + + Если Модули <> Неопределено Тогда + Параметры.filter.modules = ЮТСтроки.РазделитьСтроку(Модули, ","); + КонецЕсли; + + Если Теги <> Неопределено Тогда + Параметры.filter.tags = ЮТСтроки.РазделитьСтроку(Теги, ","); + КонецЕсли; + + Если Контексты <> Неопределено Тогда + Параметры.filter.contexts = ЮТСтроки.РазделитьСтроку(Контексты, ","); + КонецЕсли; + + УстановитьФильтр(Параметры); + +КонецПроцедуры + +Процедура УстановитьФильтр(Параметры) + ЮТФильтрацияСлужебный.УстановитьКонтекст(Параметры); - Результат = ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(Наборы, ОписаниеМодуля); - ЮТест.ОжидаетЧто(Результат, "Тест с указаниме контекста и фильтра контекстов") - .ИмеетДлину(0); +КонецПроцедуры + +Функция МетаданныеМодуля(ИмяМодуля = "ТестовыйМодуль", Расширение = "ТестовоеРасширение") + + МетаданныеМодуля = ЮТФабрикаСлужебный.ОписаниеМодуля(); + МетаданныеМодуля.Имя = ИмяМодуля; + МетаданныеМодуля.Расширение = Расширение; + + Возврат МетаданныеМодуля; + +КонецФункции + +Функция ОписаниеМодуля(ИмяМодуля = "ТестовыйМодуль") + + Возврат ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля(МетаданныеМодуля(ИмяМодуля), Новый Массив()); + +КонецФункции + +Функция ОписаниеНабораТестов(Имя = "ТестовыйНабор", Теги = "") + + Возврат ЮТФабрикаСлужебный.ОписаниеТестовогоНабора(Имя, Теги); + +КонецФункции + +Функция ОписаниеТеста(ИмяТеста = Неопределено, КонтекстыВызова = "Сервер, КлиентУправляемоеПриложение", Теги = "") + + Если ИмяТеста = Неопределено Тогда + ИмяТеста = ЮТест.Данные().СлучайнаяСтрока(); + КонецЕсли; + + Возврат ЮТФабрикаСлужебный.ОписаниеТеста(ИмяТеста, + ЮТест.Данные().СлучайнаяСтрока(), + ЮТСтроки.РазделитьСтроку(КонтекстыВызова, ","), + Теги); + +КонецФункции + +Процедура ДобавитьКопиюНабора(ОписаниеМодуля, Набор) + + ОписаниеМодуля.НаборыТестов.ДОбавить(ЮТКоллекции.СкопироватьРекурсивно(Набор)); КонецПроцедуры +Функция ОписаниеМодуляДляТестированияФильтрации() + + Набор1 = ОписаниеНабораТестов(); + Набор1.Теги = ЮТКоллекции.ЗначениеВМассиве("Тег набора"); + Набор1.Тесты.Добавить(ОписаниеТеста()); + Набор1.Тесты.Добавить(ОписаниеТеста(, , "Тег Теста1")); + Набор1.Тесты.Добавить(ОписаниеТеста(, , "Тег Теста1, ТегТеста2")); + Набор1.Тесты.Добавить(ОписаниеТеста(, , "ТегТеста")); + Набор1.Тесты.Добавить(ОписаниеТеста(, , "ТЕГ Теста1")); + + Набор2 = ОписаниеНабораТестов(); + Набор2.Тесты.Добавить(ОписаниеТеста(, , "ТегТеста2")); + Набор2.Тесты.Добавить(ОписаниеТеста(, , "ТегТеста")); + + ОписаниеМодуля = ОписаниеМодуля(); + ОписаниеМодуля.НаборыТестов.Добавить(Набор1); + ОписаниеМодуля.НаборыТестов.Добавить(Набор2); + + Возврат ОписаниеМодуля; + +КонецФункции + #КонецОбласти diff --git "a/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242HTTP\320\241\320\265\321\200\320\262\320\270\321\201\320\227\320\260\320\277\321\200\320\276\321\201/Module.bsl" "b/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242HTTP\320\241\320\265\321\200\320\262\320\270\321\201\320\227\320\260\320\277\321\200\320\276\321\201/Module.bsl" index d4c2412b6..16f09ff8f 100644 --- "a/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242HTTP\320\241\320\265\321\200\320\262\320\270\321\201\320\227\320\260\320\277\321\200\320\276\321\201/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242HTTP\320\241\320\265\321\200\320\262\320\270\321\201\320\227\320\260\320\277\321\200\320\276\321\201/Module.bsl" @@ -20,7 +20,7 @@ Процедура ИсполняемыеСценарии() Экспорт - ЮТТесты + ЮТТесты.Тег("Мокирование") .ДобавитьТест("Конструктор") .ДобавитьТест("УстановитьТело") ; diff --git "a/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242RecordSet_\320\234\320\236/Module.bsl" "b/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242RecordSet_\320\234\320\236/Module.bsl" index 75dbf50d6..eadc93c2d 100644 --- "a/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242RecordSet_\320\234\320\236/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242RecordSet_\320\234\320\236/Module.bsl" @@ -20,7 +20,7 @@ Процедура ИсполняемыеСценарии() Экспорт - ЮТТесты + ЮТТесты.Тег("Мокирование") .ДобавитьТест("Инициализировать") .ДобавитьТест("Добавить") .ДобавитьТест("MoveFirst") diff --git "a/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO_\320\234\320\236/Module.bsl" "b/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO_\320\234\320\236/Module.bsl" index 34414c2fd..996b5b20a 100644 --- "a/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO_\320\234\320\236/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO_\320\234\320\236/Module.bsl" @@ -20,7 +20,7 @@ Процедура ИсполняемыеСценарии() Экспорт - ЮТТесты + ЮТТесты.Тег("ТестовыеДанные") .ДобавитьТест("Установить") .ДобавитьТест("УстановитьРеквизиты") .ДобавитьТест("Фикция") diff --git "a/tests/src/CommonModules/\320\242\320\265\320\263\320\270\320\242\320\265\321\201\321\202\320\276\320\262/Module.bsl" "b/tests/src/CommonModules/\320\242\320\265\320\263\320\270\320\242\320\265\321\201\321\202\320\276\320\262/Module.bsl" new file mode 100644 index 000000000..51f2fb843 --- /dev/null +++ "b/tests/src/CommonModules/\320\242\320\265\320\263\320\270\320\242\320\265\321\201\321\202\320\276\320\262/Module.bsl" @@ -0,0 +1,32 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область СлужебныйПрограммныйИнтерфейс + +Функция Мокирование() Экспорт + + ЮТТесты.Тег("Мокирование"); + Возврат ТегиТестов; + +КонецФункции + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#КонецОбласти diff --git "a/tests/src/CommonModules/\320\242\320\265\320\263\320\270\320\242\320\265\321\201\321\202\320\276\320\262/\320\242\320\265\320\263\320\270\320\242\320\265\321\201\321\202\320\276\320\262.mdo" "b/tests/src/CommonModules/\320\242\320\265\320\263\320\270\320\242\320\265\321\201\321\202\320\276\320\262/\320\242\320\265\320\263\320\270\320\242\320\265\321\201\321\202\320\276\320\262.mdo" new file mode 100644 index 000000000..fafb8bd59 --- /dev/null +++ "b/tests/src/CommonModules/\320\242\320\265\320\263\320\270\320\242\320\265\321\201\321\202\320\276\320\262/\320\242\320\265\320\263\320\270\320\242\320\265\321\201\321\202\320\276\320\262.mdo" @@ -0,0 +1,11 @@ + + + ТегиТестов + + ru + Теги тестов + + true + true + true + diff --git "a/tests/src/CommonModules/\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" "b/tests/src/CommonModules/\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" index 8e2bcd7db..1bb7e03c8 100644 --- "a/tests/src/CommonModules/\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" +++ "b/tests/src/CommonModules/\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" @@ -39,6 +39,7 @@ Описание.Вставить("НаборыТестов", Новый Массив); Описание.Вставить("Ошибки", Новый Массив); Описание.Вставить("НастройкиВыполнения", Новый Структура); + Описание.Вставить("Теги", Новый Массив()); Описание.МетаданныеМодуля.Имя = СлучайнаяСтрокаЕслиНеопределено(ИмяМодуля); Описание.МетаданныеМодуля.ПолноеИмя = ЮТТестовыеДанные.СлучайнаяСтрока() + "." + Описание.МетаданныеМодуля.Имя; diff --git a/tests/src/Configuration/Configuration.mdo b/tests/src/Configuration/Configuration.mdo index 19ac4171e..8d8449f85 100644 --- a/tests/src/Configuration/Configuration.mdo +++ b/tests/src/Configuration/Configuration.mdo @@ -65,6 +65,7 @@ CommonModule.ПодпискиНаСобытия CommonModule.Пользователи CommonModule.ПомощникТестированияВызовСервера + CommonModule.ТегиТестов CommonModule.ТестовыеДанные Catalog.Встречи Catalog.Товары