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
+
+ Теги
+
+ ru
+ Теги
+
+ 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.Товары