diff --git a/.bsl-language-server.json b/.bsl-language-server.json
new file mode 100644
index 0000000..ad623f5
--- /dev/null
+++ b/.bsl-language-server.json
@@ -0,0 +1,12 @@
+{
+ "codeLens": {
+ "testRunner": {
+ "executable": "oscript",
+ "executableWin": "oscript",
+ "getTestsArguments": "./src/cli/main.os d --file %s --mode flat",
+ "runAllTestsArguments": " ./src/cli/main.os e --file %s --genericCoverage build/genericCoverage.xml --openTestReport build/otr.xml --cobertura build/cobertura.xml",
+ "runTestArguments": " ./src/cli/main.os e --file %s -m %s --genericCoverage build/genericCoverage.xml --openTestReport build/otr.xml --cobertura build/cobertura.xml",
+ "getTestsResultPattern": "^[^.]+\\.([^\\s]+).*$"
+ }
+ }
+}
diff --git a/README.md b/README.md
index 267d27f..8bb2cd6 100644
--- a/README.md
+++ b/README.md
@@ -121,9 +121,9 @@ OneUnit поддерживает следующие аннотации для н
### 1.4 Неперехваченные исключения
-В OneUnit если исключение выдаётся из тестового метода или метода жизненного цикла и не перехватывается в этом тестовом методе или методе жизненного цикла, то фреймворк пометит тест как упавший.
+В OneUnit если исключение выдаётся из тестового метода или метода жизненного цикла и не перехватывается в этом тестовом методе или методе жизненного цикла, то фреймворк пометит тест как `Сломанный`.
-В следующем примере `ПадениеПриНеперехваченномИсключении()` методы вызывает исключение `Деление на ноль`. Поскольку исключение не перехватывается, тест будет помечен как упавший.
+В следующем примере `ПадениеПриНеперехваченномИсключении()` методы вызывает исключение `Деление на ноль`. Поскольку исключение не перехватывается, тест будет помечен как `Сломанный`.
```bsl
&Тест
@@ -136,6 +136,19 @@ OneUnit поддерживает следующие аннотации для н
КонецПроцедуры
```
+При использовании библиотеки [`asserts`](https://github.com/oscript-library/asserts), в случае если не проходит проверка утверждения, то фреймворк пометит тест как `Ошибочный`.
+
+```bsl
+#Использовать asserts
+
+&Тест
+Процедура ПадениеПриУтверждении() Экспорт
+
+ Утверждения.ПроверитьИстину(Ложь, "Исключение, которое помечает тест ошибочным");
+
+КонецПроцедуры
+```
+
### 1.5 Отключение тестов
Целые тестовые наборы или отдельные тестовые методы можно *отключить* с помощью аннотации [`&Выключен`](./docs/api/Аннотации/Выключен.md), или с помощью одной из аннотаций, перечисленных в разделе [Условное выполнение тестов](#16-условное-выполнение-тестов).
@@ -264,6 +277,31 @@ OneUnit поддерживает следующие аннотации для н
КонецФункции
```
+#### 1.6.4 Предположения
+
+Предположения обычно используют когда нет смысла продолжать выполнение теста, например если тест зависит от чего-то чего нет в текущей среде исполнения
+
+* Когда предположение справедливо, метод предположения не порождает исключение и выполнение теста продолжается в обычном режиме
+* Когда предположение неверно, метод предположения выбрасывает исключение типа `ИсключениеТестПрерван` что сигнализирует фреймворку о том, что вместо этого тест следует прервать, и поместить его как `Прерван`
+
+Методы предположений располагаются в модуле [`Предполагаем`](./docs/api/Модули/Предполагаем.md)
+
+```bsl
+&Тест
+Процедура ПредположительноПрервется() Экспорт
+ Предполагаем.ЧтоИстинно(Ложь, "Тест будет прерван")
+КонецПроцедуры
+```
+
+```bsl
+&ПараметризованныйТест
+&ИсточникЗначение(Ложь)
+&ИсточникЗначение(Истина)
+Процедура ПараметризованноПрервется(Прервать) Экспорт
+ Предполагаем.ЧтоЛожно(Прервать, "Тест будет прерван если значение параметра Прервать будет Истина")
+КонецПроцедуры
+```
+
### 1.7 Теги
Тестовые наборы и методы могут быть помечены с помощью аннотации [`&Тег`](./docs/api/Аннотации/Тег.md). Эти теги могут быть позже использованы для фильтрации [обнаружения и выполнения тестов](#)
@@ -550,11 +588,13 @@ $ oneunit execute
[ 2 Наборов обнаружено ]
[ 0 Наборов пропущено ]
+[ 0 Наборов прервано ]
[ 2 Наборов успешных ]
[ 0 Наборов ошибочных ]
[ 5 Тестов обнаружено ]
[ 1 Тестов пропущено ]
+[ 0 Тестов прервано ]
[ 4 Тестов успешных ]
[ 0 Тестов ошибочных ]
diff --git "a/docs/api/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\321\200\320\265\320\264\320\277\320\276\320\273\320\260\320\263\320\260\320\265\320\274.md" "b/docs/api/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\321\200\320\265\320\264\320\277\320\276\320\273\320\260\320\263\320\260\320\265\320\274.md"
new file mode 100644
index 0000000..bc884ab
--- /dev/null
+++ "b/docs/api/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\321\200\320\265\320\264\320\277\320\276\320\273\320\260\320\263\320\260\320\265\320\274.md"
@@ -0,0 +1,39 @@
+# Предполагаем
+
+## ЧтоИстинно
+
+```bsl
+// Проверяет что переданное предположение истинно,
+// если это не так, прерывает выполнение теста с сообщением
+//
+// Параметры:
+// Предположение - Булево - Проверяемое предположение
+// Сообщение - Строка - Сообщение, с которым будет прерван тест
+//
+// Пример:
+// &Тест
+// Процедура Тест() Экспорт
+// Предполагаем.ЧтоИстинно(ПолучитьПеременнуюСреды("ENV") = "CI", "Выполняется только на CI");
+// КонецПроцедуры
+//
+Процедура ЧтоИстинно(Предположение, Сообщение)
+```
+
+## ЧтоЛожно
+
+```bsl
+// Проверяет что переданное предположение ложно,
+// если это не так, прерывает выполнение теста с сообщением
+//
+// Параметры:
+// Предположение - Булево - Проверяемое предположение
+// Сообщение - Строка - Сообщение, с которым будет прерван тест
+//
+// Пример:
+// &Тест
+// Процедура Тест() Экспорт
+// Предполагаем.ЧтоЛожно(ПолучитьПеременнуюСреды("ENV") = "PROD", "Только не на проде");
+// КонецПроцедуры
+//
+Процедура ЧтоЛожно(Предположение, Сообщение)
+```
diff --git a/lib.config b/lib.config
index 71846e5..b963195 100644
--- a/lib.config
+++ b/lib.config
@@ -25,4 +25,6 @@
+
+
diff --git a/packagedef b/packagedef
index 1a99f8c..faf2d6f 100644
--- a/packagedef
+++ b/packagedef
@@ -19,7 +19,7 @@
.ЗависитОт("1commands", "1.5.0")
.ЗависитОт("annotations", "1.3.1")
- .ЗависитОт("asserts", "1.4.0")
+ .ЗависитОт("asserts", "1.6.0")
.ЗависитОт("async", "0.3.0")
.ЗависитОт("autumn", "4.3.10")
.ЗависитОт("autumn-cli", "1.2.0")
@@ -27,7 +27,7 @@
.ЗависитОт("autumn-logos", "1.2.0")
.ЗависитОт("collectionos", "0.8.2")
.ЗависитОт("coverage", "0.7.0")
- .ЗависитОт("decorator", "2.0.3")
+ .ЗависитОт("decorator", "2.0.6")
.ЗависитОт("fs", "1.2.0")
.ЗависитОт("lambdas", "0.3.2")
.ЗависитОт("logos", "1.7.1")
diff --git "a/src/cli/internal/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\275\321\201\320\276\320\273\321\214\320\275\320\276\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\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.os" "b/src/cli/internal/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\275\321\201\320\276\320\273\321\214\320\275\320\276\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\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.os"
index f71eca6..20b1ece 100644
--- "a/src/cli/internal/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\275\321\201\320\276\320\273\321\214\320\275\320\276\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\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.os"
+++ "b/src/cli/internal/\320\234\320\276\320\264\321\203\320\273\320\270/\320\232\320\276\320\275\321\201\320\276\320\273\321\214\320\275\320\276\320\265\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\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.os"
@@ -37,6 +37,12 @@
ПоПути = Ложь;
Импорт = СтрЗаменить(Строка, "#Использовать ", "");
+
+ Если СокрЛП(НРег(Импорт)) = "oneunit" Тогда
+ Строка = ЧтениеТекста.ПрочитатьСтроку();
+ Продолжить;
+ КонецЕсли;
+
Если СтрНайти(Импорт, """") > 0 Тогда
Импорт = ФС.НормализоватьПуть(СтрЗаменить(Импорт, """", ""));
ПоПути = Истина;
diff --git "a/src/cli/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\321\202\321\214.os" "b/src/cli/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\321\202\321\214.os"
index bab03ce..9b515f9 100644
--- "a/src/cli/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\321\202\321\214.os"
+++ "b/src/cli/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\321\202\321\214.os"
@@ -112,7 +112,9 @@
| .СтатистикаТестПлана();
|
| Если Статистика.ПолучитьИлиУмолчание(""НаборовОшибка"", 0) > 0
- | Или Статистика.ПолучитьИлиУмолчание(""ТестовОшибка"", 0) > 0 Тогда
+ | Или Статистика.ПолучитьИлиУмолчание(""НаборовСломано"", 0) > 0
+ | Или Статистика.ПолучитьИлиУмолчание(""ТестовОшибка"", 0) > 0
+ | Или Статистика.ПолучитьИлиУмолчание(""ТестовСломано"", 0) > 0 Тогда
| ЗавершитьРаботу(1);
| КонецЕсли;
|
diff --git "a/src/core/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\321\201\320\270\320\275\321\205\321\200\320\276\320\275\320\275\321\213\320\271\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\242\320\265\321\201\321\202\320\276\320\262.os" "b/src/core/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\321\201\320\270\320\275\321\205\321\200\320\276\320\275\320\275\321\213\320\271\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\242\320\265\321\201\321\202\320\276\320\262.os"
index c32eaa0..5e60263 100644
--- "a/src/core/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\321\201\320\270\320\275\321\205\321\200\320\276\320\275\320\275\321\213\320\271\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\242\320\265\321\201\321\202\320\276\320\262.os"
+++ "b/src/core/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\321\201\320\270\320\275\321\205\321\200\320\276\320\275\320\275\321\213\320\271\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\242\320\265\321\201\321\202\320\276\320\262.os"
@@ -14,9 +14,11 @@
Для Каждого Набор Из Наборы Цикл
+ _ПубликаторСобытий.ОпубликоватьСобытие(Набор, "ИсполнениеТестНаборНачало", Новый Массив);
+
РезультатПропустить = ВыполнитьМетод(
ЭтотОбъект,
- "ПропуститьНабор",
+ "ПропуститьОпределение",
Новый Массив(Массивы.ИзЭлементов(Набор)),
0
);
@@ -25,11 +27,13 @@
Продолжить;
КонецЕсли;
- _ПубликаторСобытий.ОпубликоватьСобытие(Набор, "ИсполнениеТестНаборНачало", Новый Массив);
+ Если Не ПроверитьСозданиеНабора(Набор) Тогда
+ Продолжить;
+ КонецЕсли;
РезультатВыполненияНабора = Новый Структура(
- "Результат, Причины, Вывод",
- РезультатыВыполненияТестов.Успех,
+ "Состояние, Причины, Вывод",
+ СостоянияВыполненияТестов.Успех,
Новый СписокМассив,
""
);
@@ -39,9 +43,13 @@
ОбработатьСобытияНабора(Набор, Набор.ПередВсеми())
);
- Для Каждого Тест Из Набор.Дети() Цикл
- ВыполнитьТест(Тест, Набор, РезультатВыполненияНабора);
- КонецЦикла;
+ Если РезультатВыполненияНабора.Состояние = СостоянияВыполненияТестов.Успех Тогда
+
+ Для Каждого Тест Из Набор.Дети() Цикл
+ ВыполнитьТест(Тест, Набор, РезультатВыполненияНабора);
+ КонецЦикла;
+
+ КонецЕсли;
ОбъединитьРезультатыВыполнения(
РезультатВыполненияНабора,
@@ -51,7 +59,7 @@
РезультатВыполненияНабора = _Поделка.НайтиЖелудь(
"РезультатВыполненияТеста",
Массивы.ИзЭлементов(
- РезультатВыполненияНабора.Результат,
+ РезультатВыполненияНабора.Состояние,
РезультатВыполненияНабора.Причины,
РезультатВыполненияНабора.Вывод
)
@@ -72,8 +80,8 @@
Функция ОбработатьСобытияНабора(Набор, События)
Результат = Новый Структура(
- "Результат, Причины, Вывод",
- РезультатыВыполненияТестов.Успех,
+ "Состояние, Причины, Вывод",
+ СостоянияВыполненияТестов.Успех,
Новый СписокМассив,
""
);
@@ -100,10 +108,12 @@
Процедура ВыполнитьТест(Тест, ОпределениеТестНабора, РезультатВыполненияНабора)
+ _ПубликаторСобытий.ОпубликоватьСобытие(Тест, "ИсполнениеТестНачало", Новый Массив);
+
РезультатПропустить = ВыполнитьМетод(
ЭтотОбъект,
- "ПропуститьТест",
- Новый Массив(Массивы.ИзЭлементов(Тест, ОпределениеТестНабора, РезультатВыполненияНабора)),
+ "ПропуститьОпределение",
+ Новый Массив(Массивы.ИзЭлементов(Тест)),
0
);
@@ -113,8 +123,6 @@
Если Тест.ТипОпределения() = ТипыОпределенийТестов.Контейнер Тогда
- _ПубликаторСобытий.ОпубликоватьСобытие(Тест, "ИсполнениеТестНачало", Новый Массив);
-
Для Каждого ВложенныйТест Из Тест.Дети() Цикл
ВыполнитьТест(ВложенныйТест, ОпределениеТестНабора, РезультатВыполненияНабора);
КонецЦикла;
@@ -123,7 +131,7 @@
Результат = _Поделка.НайтиЖелудь(
"РезультатВыполненияТеста",
Массивы.ИзЭлементов(
- РезультатыВыполненияТестов.Успех,
+ СостоянияВыполненияТестов.Успех,
Списки.ИзЭлементов(),
""
)
@@ -135,11 +143,9 @@
КонецЕсли;
- _ПубликаторСобытий.ОпубликоватьСобытие(Тест, "ИсполнениеТестНачало", Новый Массив);
-
РезультатВыполнения = Новый Структура(
- "Результат, Причины, Вывод",
- РезультатыВыполненияТестов.Успех,
+ "Состояние, Причины, Вывод",
+ СостоянияВыполненияТестов.Успех,
Новый СписокМассив,
""
);
@@ -160,7 +166,7 @@
КонецЦикла;
- Если РезультатВыполнения.Результат <> РезультатыВыполненияТестов.Ошибка Тогда
+ Если РезультатВыполнения.Состояние = СостоянияВыполненияТестов.Успех Тогда
ОбъединитьРезультатыВыполнения(
РезультатВыполнения,
@@ -191,7 +197,7 @@
Результат = _Поделка.НайтиЖелудь(
"РезультатВыполненияТеста",
Массивы.ИзЭлементов(
- РезультатВыполнения.Результат,
+ РезультатВыполнения.Состояние,
РезультатВыполнения.Причины,
РезультатВыполнения.Вывод
)
@@ -205,8 +211,8 @@
Делегат = Новый Действие(Объект, ИмяМетода);
- Результат = РезультатыВыполненияТестов.Успех;
- Причина = "";
+ Состояние = СостоянияВыполненияТестов.Успех;
+ Причина = NULL;
ПотокВывода = Новый ПотокВПамяти();
Консоль.УстановитьПотокВывода(ПотокВывода);
@@ -217,7 +223,6 @@
.Получить(Таймаут);
Исключение
- Результат = РезультатыВыполненияТестов.Ошибка;
Причина = ИнформацияОбОшибке();
// Опустим первый стек, это служебный re-throw от async
@@ -225,14 +230,22 @@
Причина = Причина.Причина;
КонецЕсли;
+ Если ТипЗнч(Причина.Параметры) = Тип("ИсключениеОшибкаУтверждения") Тогда
+ Состояние = СостоянияВыполненияТестов.Ошибка;
+ ИначеЕсли ТипЗнч(Причина.Параметры) = Тип("ИсключениеТестПрерван") Тогда
+ Состояние = СостоянияВыполненияТестов.Прерван;
+ Иначе
+ Состояние = СостоянияВыполненияТестов.Сломан;
+ КонецЕсли;
+
КонецПопытки;
Консоль.УстановитьПотокВывода(_СтандартныйПотокВывода);
Консоль.УстановитьПотокОшибок(_СтандартныйПотокОшибок);
Возврат Новый Структура(
- "Результат, Причины, Вывод, РезультатВыполненияМетода",
- Результат,
+ "Состояние, Причины, Вывод, РезультатВыполненияМетода",
+ Состояние,
Списки.ИзЭлементов(Причина),
ПрочитатьВывод(ПотокВывода),
РезультатВыполненияМетода
@@ -261,30 +274,27 @@
Пропустить = Ложь;
Если ТипЗнч(Определение) = Тип("ОпределениеТеста") Тогда
- СобытиеНачало = "ИсполнениеТестНачало";
- СобытиеКонец = "ИсполнениеТестКонец";
- СобытиеПропуск = "ИсполнениеТестПропущен";
+ ИмяСобытия = "ИсполнениеТестКонец";
Иначе
- СобытиеНачало = "ИсполнениеТестНаборНачало";
- СобытиеКонец = "ИсполнениеТестНаборКонец";
- СобытиеПропуск = "ИсполнениеТестНаборПропущен";
+ ИмяСобытия = "ИсполнениеТестНаборКонец";
КонецЕсли;
- Если РезультатПропустить.Результат = РезультатыВыполненияТестов.Ошибка Тогда
+ Если РезультатПропустить.Состояние = СостоянияВыполненияТестов.Ошибка
+ Или РезультатПропустить.Состояние = СостоянияВыполненияТестов.Сломан
+ Или РезультатПропустить.Состояние = СостоянияВыполненияТестов.Прерван Тогда
Пропустить = Истина;
Результат = _Поделка.НайтиЖелудь(
"РезультатВыполненияТеста",
Массивы.ИзЭлементов(
- РезультатыВыполненияТестов.Ошибка,
+ РезультатПропустить.Состояние,
РезультатПропустить.Причины,
РезультатПропустить.Вывод
)
);
- _ПубликаторСобытий.ОпубликоватьСобытие(Определение, СобытиеНачало, Новый Массив);
- _ПубликаторСобытий.ОпубликоватьСобытие(Определение, СобытиеКонец, Массивы.ИзЭлементов(Результат));
+ _ПубликаторСобытий.ОпубликоватьСобытие(Определение, ИмяСобытия, Массивы.ИзЭлементов(Результат));
Иначе
@@ -292,10 +302,19 @@
Если Пропустить Тогда
+ Результат = _Поделка.НайтиЖелудь(
+ "РезультатВыполненияТеста",
+ Массивы.ИзЭлементов(
+ СостоянияВыполненияТестов.Пропущен,
+ Списки.ИзЭлементов(РезультатПропустить.РезультатВыполненияМетода.Причина),
+ ""
+ )
+ );
+
_ПубликаторСобытий.ОпубликоватьСобытие(
Определение,
- СобытиеПропуск,
- Массивы.ИзЭлементов(РезультатПропустить.РезультатВыполненияМетода.Причина)
+ ИмяСобытия,
+ Массивы.ИзЭлементов(Результат)
);
КонецЕсли;
@@ -306,14 +325,20 @@
КонецФункции
-Функция ПропуститьНабор(ОпределениеТестНабора) Экспорт
+Функция ПропуститьОпределение(Определение) Экспорт
+
+ ОпределениеНабора = Определение;
+
+ Пока ТипЗнч(ОпределениеНабора) <> Тип("ОпределениеТестНабора") Цикл
+ ОпределениеНабора = ОпределениеНабора.Родитель();
+ КонецЦикла;
Результат = Новый Структура("Пропустить, Причина", Ложь, "");
- Причина = ОпределениеТестНабора.Условия()
+ Причина = Определение.Условия()
.ПроцессорКоллекции()
.Обработать("Условие -> Условие.Выполнять(ТестНабор)",
- Новый Структура("ТестНабор", ОпределениеТестНабора.ТестНабор()))
+ Новый Структура("ТестНабор", ОпределениеНабора.ТестНабор()))
.Фильтровать("Выполнять -> Выполнять.Результат = Ложь")
.Обработать("Выполнять -> Выполнять.Причина")
.ПолучитьПервый();
@@ -329,46 +354,71 @@
КонецФункции
-Функция ПропуститьТест(ОпределениеТеста, ОпределениеТестНабора, РезультатВыполненияНабора) Экспорт
+Процедура ОбъединитьРезультатыВыполнения(Первый, Второй)
- Результат = Новый Структура("Пропустить, Причина", Ложь, "");
+ Первый.Состояние = СостоянияВыполненияТестов.НаихудшееСостояние(
+ Первый.Состояние,
+ Второй.Состояние
+ );
- Если РезультатВыполненияНабора.Результат <> РезультатыВыполненияТестов.Успех Тогда
+ Первый.Причины.ДобавитьВсе(Второй.Причины);
+ Первый.Вывод = Первый.Вывод + Второй.Вывод;
- Результат.Пропустить = Истина;
- Результат.Причина = "Пропущен из-за состояния набора " + РезультатВыполненияНабора.Результат;
+КонецПроцедуры
- КонецЕсли;
+Функция ПроверитьСозданиеНабора(Набор) Экспорт
- Причина = ОпределениеТеста.Условия()
- .ПроцессорКоллекции()
- .Обработать("Условие -> Условие.Выполнять(ТестНабор)",
- Новый Структура("ТестНабор", ОпределениеТестНабора.ТестНабор()))
- .Фильтровать("Выполнять -> Выполнять.Результат = Ложь")
- .Обработать("Выполнять -> Выполнять.Причина")
- .ПолучитьПервый();
+ Результат = ВыполнитьМетод(Набор, "ТестНабор", Новый Массив(Массивы.ИзЭлементов()), 0);
- Если ЗначениеЗаполнено(Причина) Тогда
+ Если Результат.Состояние <> СостоянияВыполненияТестов.Успех Тогда
- Результат.Пропустить = Истина;
- Результат.Причина = Причина;
+ Результат = _Поделка.НайтиЖелудь(
+ "РезультатВыполненияТеста",
+ Массивы.ИзЭлементов(
+ Результат.Состояние,
+ Результат.Причины,
+ Результат.Вывод
+ )
+ );
- КонецЕсли;
+ _ПубликаторСобытий.ОпубликоватьСобытие(
+ Набор,
+ "ИсполнениеТестНаборКонец",
+ Массивы.ИзЭлементов(Результат)
+ );
- Возврат Результат;
+ Возврат Ложь;
-КонецФункции
+ ИначеЕсли Результат.РезультатВыполненияМетода = Неопределено Тогда
-Процедура ОбъединитьРезультатыВыполнения(Первый, Второй)
+ Попытка
+ ВызватьИсключение "Не удаётся инстанцировать тестовый набор";
+ Исключение
+ ИнформацияОбОшибке = ИнформацияОбОшибке();
+ КонецПопытки;
+
+ Результат = _Поделка.НайтиЖелудь(
+ "РезультатВыполненияТеста",
+ Массивы.ИзЭлементов(
+ СостоянияВыполненияТестов.Сломан,
+ Списки.ИзЭлементов(ИнформацияОбОшибке),
+ Результат.Вывод
+ )
+ );
+
+ _ПубликаторСобытий.ОпубликоватьСобытие(
+ Набор,
+ "ИсполнениеТестНаборКонец",
+ Массивы.ИзЭлементов(Результат)
+ );
+
+ Возврат Ложь;
- Если Второй.Результат = РезультатыВыполненияТестов.Ошибка Тогда
- Первый.Результат = РезультатыВыполненияТестов.Ошибка;
- Первый.Причины.ДобавитьВсе(Второй.Причины);
КонецЕсли;
- Первый.Вывод = Первый.Вывод + Второй.Вывод;
+ Возврат Истина;
-КонецПроцедуры
+КонецФункции
&Желудь
&Прозвище("ИсполнительТестов")
diff --git "a/src/core/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\227\320\260\320\263\320\276\321\202\320\276\320\262\320\272\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265.os" "b/src/core/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\227\320\260\320\263\320\276\321\202\320\276\320\262\320\272\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265.os"
index fb72707..91c4632 100644
--- "a/src/core/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\227\320\260\320\263\320\276\321\202\320\276\320\262\320\272\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265.os"
+++ "b/src/core/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\227\320\260\320\263\320\276\321\202\320\276\320\262\320\272\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265.os"
@@ -38,18 +38,13 @@
Исключение
- Ошибка = Новый ИнформацияОбОшибке(
- СтрШаблон(
- "Ошибка подключения тестового набора %1
- |%2",
- Путь,
- ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())
- ),
- ИнформацияОбОшибке()
- );
+ ИнформацияОбОшибке = ИнформацияОбОшибке();
+ Если ЗначениеЗаполнено(ИнформацияОбОшибке.Причина) Тогда
+ ИнформацияОбОшибке = ИнформацияОбОшибке.Причина;
+ КонецЕсли;
ПостроительДекоратора = Новый ПостроительДекоратора()
- .Поле(Новый Поле("Ошибка").ЗначениеПоУмолчанию(Ошибка))
+ .Поле(Новый Поле("Ошибка").ЗначениеПоУмолчанию(ИнформацияОбОшибке))
.Метод(Новый Метод("ПередВсеми")
.Аннотация(Новый Аннотация("ПередВсеми"))
.ТелоМетода("ВызватьИсключение Ошибка;")
diff --git "a/src/core/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\320\237\321\200\320\265\321\200\320\262\320\260\320\275.os" "b/src/core/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\320\237\321\200\320\265\321\200\320\262\320\260\320\275.os"
new file mode 100644
index 0000000..f16099f
--- /dev/null
+++ "b/src/core/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\321\201\320\272\320\273\321\216\321\207\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\320\237\321\200\320\265\321\200\320\262\320\260\320\275.os"
@@ -0,0 +1,8 @@
+Перем Тип;
+
+Процедура ОбработкаПолученияПредставления(Представление, СтандартнаяОбработка)
+ СтандартнаяОбработка = Ложь;
+ Представление = СтрШаблон("{Тип = %1}", Тип);
+КонецПроцедуры
+
+Тип = "Тест прерван";
diff --git "a/src/core/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\320\235\320\260\320\261\320\276\321\200\320\260.os" "b/src/core/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\320\235\320\260\320\261\320\276\321\200\320\260.os"
index 0360f05..d76086f 100644
--- "a/src/core/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\320\235\320\260\320\261\320\276\321\200\320\260.os"
+++ "b/src/core/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\320\235\320\260\320\261\320\276\321\200\320\260.os"
@@ -31,6 +31,9 @@
| КонецЕсли;
|"
);
+
+ ДетиОтсортированы = Истина;
+
КонецЕсли;
Возврат Новый ФиксированныйСписок(_Дети);
diff --git "a/src/core/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\260.os" "b/src/core/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\260.os"
index 16f259c..fdd070e 100644
--- "a/src/core/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\260.os"
+++ "b/src/core/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\260.os"
@@ -1,12 +1,12 @@
#Использовать "../../../shared"
-Перем _Результат;
+Перем _Состояние;
Перем _Причины;
Перем _Вывод;
Перем _ОписанияПричин;
-Функция Результат() Экспорт
- Возврат _Результат;
+Функция Состояние() Экспорт
+ Возврат _Состояние;
КонецФункции
Функция Причины() Экспорт
@@ -23,18 +23,24 @@
Процедура ОбработкаПолученияПредставления(Представление, СтандартнаяОбработка) // BSLLS:UnusedLocalMethod-off
СтандартнаяОбработка = Ложь;
- Представление = СтрШаблон("%1 %2", Результат(), ОписанияПричин());
+ Представление = СтрШаблон("%1 %2", Состояние(), ОписанияПричин());
КонецПроцедуры
&Желудь
&Характер("Компанейский")
-Процедура ПриСозданииОбъекта(&Блестяшка Результат, &Блестяшка Причины, &Блестяшка Вывод)
+Процедура ПриСозданииОбъекта(&Блестяшка Состояние, &Блестяшка Причины, &Блестяшка Вывод)
- _Результат = Результат;
- _Причины = Причины;
- _Вывод = Вывод;
+ _Состояние = Состояние;
+ _Причины = Причины;
+ _Вывод = Вывод;
_ОписанияПричин = Новый СписокМассив(_Причины);
- _ОписанияПричин.ЗаменитьВсе("Причина -> ТестированиеСлужебный.КраткоеОписаниеОшибки(Причина);");
+ _ОписанияПричин.ЗаменитьВсе("Причина -> {
+ | Если ТипЗнч(Причина) = Тип(""Строка"") Тогда
+ | Возврат Причина;
+ | Иначе
+ | Возврат ТестированиеСлужебный.КраткоеОписаниеОшибки(Причина);
+ | КонецЕсли;
+ |}");
КонецПроцедуры
diff --git "a/src/core/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\240\320\265\320\277\320\276\321\200\321\202\320\265\321\200GenericExecution.os" "b/src/core/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\240\320\265\320\277\320\276\321\200\321\202\320\265\321\200GenericExecution.os"
index 04b7d6c..3a67661 100644
--- "a/src/core/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\240\320\265\320\277\320\276\321\200\321\202\320\265\321\200GenericExecution.os"
+++ "b/src/core/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\240\320\265\320\277\320\276\321\200\321\202\320\265\321\200GenericExecution.os"
@@ -1,7 +1,7 @@
Перем _ПутьКОтчету;
Перем ЗаписьXML;
-Перем ВремяНачалаТеста;
+Перем _РепортерСтатистика;
&ПодпискаНаСобытие("ИсполнениеТестПланНачало")
Процедура ИсполнениеТестПланНачало(ТестПлан) Экспорт
@@ -16,40 +16,19 @@
&ПодпискаНаСобытие("ИсполнениеТестПланКонец")
Процедура ИсполнениеТестПланКонец(ТестПлан) Экспорт
-
ЗаписьXML.ЗаписатьКонецЭлемента();
ЗаписьXML.Закрыть();
-
КонецПроцедуры
&ПодпискаНаСобытие("ИсполнениеТестНаборНачало")
Процедура ИсполнениеТестНаборНачало(ТестНабор) Экспорт
-
ЗаписьXML.ЗаписатьНачалоЭлемента("file");
ЗаписьXML.ЗаписатьАтрибут("path", ТестНабор.Путь());
-
КонецПроцедуры
&ПодпискаНаСобытие("ИсполнениеТестНаборКонец")
Процедура ИсполнениеТестНаборКонец(ТестНабор, Результат) Экспорт
-
ЗаписьXML.ЗаписатьКонецЭлемента();
-
-КонецПроцедуры
-
-&ПодпискаНаСобытие("ИсполнениеТестНаборПропущен")
-Процедура ИсполнениеТестНаборПропущен(ТестНабор, Причина) Экспорт
-
- ЗаписьXML.ЗаписатьНачалоЭлемента("file");
- ЗаписьXML.ЗаписатьАтрибут("path", ТестНабор.Путь());
-
- ЗаписьXML.ЗаписатьКонецЭлемента();
-
-КонецПроцедуры
-
-&ПодпискаНаСобытие("ИсполнениеТестНачало")
-Процедура ИсполнениеТестНачало(Тест) Экспорт
- ВремяНачалаТеста = ТекущаяУниверсальнаяДатаВМиллисекундах();
КонецПроцедуры
&ПодпискаНаСобытие("ИсполнениеТестКонец")
@@ -61,32 +40,31 @@
ЗаписьXML.ЗаписатьНачалоЭлемента("testCase");
ЗаписьXML.ЗаписатьАтрибут("name", Тест.ПолноеИмя());
- ЗаписьXML.ЗаписатьАтрибут("duration", ТекущаяУниверсальнаяДатаВМиллисекундах() - ВремяНачалаТеста);
-
- Если Результат.Результат() = РезультатыВыполненияТестов.Ошибка Тогда
+ ЗаписьXML.ЗаписатьАтрибут(
+ "duration",
+ _РепортерСтатистика.СтатистикаТеста(Тест).ПолучитьИлиУмолчание("ВремяВыполнения", 0)
+ );
+
+ Если Результат.Состояние() = СостоянияВыполненияТестов.Пропущен
+ Или Результат.Состояние() = СостоянияВыполненияТестов.Прерван Тогда
+ ЗаписьXML.ЗаписатьНачалоЭлемента("skipped");
+ ЗаписьXML.ЗаписатьКонецЭлемента();
+ ИначеЕсли Результат.Состояние() = СостоянияВыполненияТестов.Ошибка Тогда
ЗаписьXML.ЗаписатьНачалоЭлемента("failure");
ЗаписьXML.ЗаписатьКонецЭлемента();
+ ИначеЕсли Результат.Состояние() = СостоянияВыполненияТестов.Сломан Тогда
+ ЗаписьXML.ЗаписатьНачалоЭлемента("error");
+ ЗаписьXML.ЗаписатьКонецЭлемента();
+ Иначе
+ // no-op
КонецЕсли;
ЗаписьXML.ЗаписатьКонецЭлемента();
КонецПроцедуры
-&ПодпискаНаСобытие("ИсполнениеТестПропущен")
-Процедура ИсполнениеТестПропущен(Тест, Причина) Экспорт
-
- ЗаписьXML.ЗаписатьНачалоЭлемента("testCase");
- ЗаписьXML.ЗаписатьАтрибут("name", Тест.ПолноеИмя());
- ЗаписьXML.ЗаписатьАтрибут("duration", 0);
-
- ЗаписьXML.ЗаписатьНачалоЭлемента("skipped");
- ЗаписьXML.ЗаписатьКонецЭлемента();
-
- ЗаписьXML.ЗаписатьКонецЭлемента();
-
-КонецПроцедуры
-
&Желудь
-Процедура ПриСозданииОбъекта(&Блестяшка ПутьКОтчетуGenericExecution)
+Процедура ПриСозданииОбъекта(&Блестяшка ПутьКОтчетуGenericExecution, &Пластилин РепортерСтатистика)
_ПутьКОтчету = ПутьКОтчетуGenericExecution;
+ _РепортерСтатистика = РепортерСтатистика;
КонецПроцедуры
diff --git "a/src/core/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\240\320\265\320\277\320\276\321\200\321\202\320\265\321\200JUnit.os" "b/src/core/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\240\320\265\320\277\320\276\321\200\321\202\320\265\321\200JUnit.os"
index 6ec0335..8d61ea5 100644
--- "a/src/core/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\240\320\265\320\277\320\276\321\200\321\202\320\265\321\200JUnit.os"
+++ "b/src/core/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\240\320\265\320\277\320\276\321\200\321\202\320\265\321\200JUnit.os"
@@ -28,18 +28,13 @@
ЗаписьXML.ЗаписатьАтрибут("name", "Test run");
- ЗаписьXML.ЗаписатьАтрибут("tests", СтатистикаТестПлана.ПолучитьИлиУмолчание("ТестовОбнаружено", 0));
- ЗаписьXML.ЗаписатьАтрибут("failures", СтатистикаТестПлана.ПолучитьИлиУмолчание("ТестовОшибка", 0));
- ЗаписьXML.ЗаписатьАтрибут("errors", 0);
- ЗаписьXML.ЗаписатьАтрибут("skipped", СтатистикаТестПлана.ПолучитьИлиУмолчание("ТестовПропущено", 0));
+ ЗаписьXML.ЗаписатьАтрибут("tests", СтатистикаТестПлана.ПолучитьИлиУмолчание("ТестовОбнаружено", 0));
+ ЗаписьXML.ЗаписатьАтрибут("skipped", СтатистикаТестПлана.ПолучитьИлиУмолчание("ТестовПропущено", 0)
+ + СтатистикаТестПлана.ПолучитьИлиУмолчание("ТестовПрервано", 0));
+ ЗаписьXML.ЗаписатьАтрибут("failures", СтатистикаТестПлана.ПолучитьИлиУмолчание("ТестовОшибка", 0));
+ ЗаписьXML.ЗаписатьАтрибут("errors", СтатистикаТестПлана.ПолучитьИлиУмолчание("ТестовСломано", 0));
ЗаписьXML.ЗаписатьАтрибут("assertions", 0);
-
- ЗаписьXML.ЗаписатьАтрибут(
- "time",
- (СтатистикаТестПлана.ПолучитьИлиУмолчание("ВремяЗавершения", 0)
- - СтатистикаТестПлана.ПолучитьИлиУмолчание("ВремяНачала", 0))
- / 1000
- );
+ ЗаписьXML.ЗаписатьАтрибут("time", СтатистикаТестПлана.ПолучитьИлиУмолчание("ВремяВыполнения", 0) / 1000);
ЗаписьXML.ЗаписатьАтрибут(
"timestamp",
@@ -84,45 +79,37 @@
Процедура ВывестиТестНабор(ЗаписьXML, ТестНабор) Экспорт
Если ТипЗнч(ТестНабор) = Тип("ОпределениеТестНабора") Тогда
- ЗавершенныеНаборы = _РепортерСтатистика.ЗавершенныеНаборы();
- ПропущенныеНаборы = _РепортерСтатистика.ПропущенныеНаборы();
- СтатистикаНабора = _РепортерСтатистика.СтатистикаНабора(ТестНабор);
+ Статистика = _РепортерСтатистика.СтатистикаНабора(ТестНабор);
Иначе
- ЗавершенныеНаборы = _РепортерСтатистика.ЗавершенныеТесты();
- ПропущенныеНаборы = _РепортерСтатистика.ПропущенныеТесты();
- СтатистикаНабора = _РепортерСтатистика.СтатистикаТеста(ТестНабор);
+ Статистика = _РепортерСтатистика.СтатистикаТеста(ТестНабор);
КонецЕсли;
ЗаписьXML.ЗаписатьНачалоЭлемента("testsuite");
- ЗаписьXML.ЗаписатьАтрибут("name", ТестНабор.Имя());
- ЗаписьXML.ЗаписатьАтрибут("tests", СтатистикаНабора.ПолучитьИлиУмолчание("ТестовОбнаружено", 0));
- ЗаписьXML.ЗаписатьАтрибут("failures", СтатистикаНабора.ПолучитьИлиУмолчание("ТестовОшибка", 0));
- ЗаписьXML.ЗаписатьАтрибут("errors", 0);
- ЗаписьXML.ЗаписатьАтрибут("skipped", СтатистикаНабора.ПолучитьИлиУмолчание("ТестовПропущено", 0));
+ ЗаписьXML.ЗаписатьАтрибут("name", ТестНабор.Имя());
+ ЗаписьXML.ЗаписатьАтрибут("tests", Статистика.ПолучитьИлиУмолчание("ТестовОбнаружено", 0));
+ ЗаписьXML.ЗаписатьАтрибут("skipped", Статистика.ПолучитьИлиУмолчание("ТестовПропущено", 0)
+ + Статистика.ПолучитьИлиУмолчание("ТестовПрервано", 0));
+ ЗаписьXML.ЗаписатьАтрибут("failures", Статистика.ПолучитьИлиУмолчание("ТестовОшибка", 0));
+ ЗаписьXML.ЗаписатьАтрибут("errors", Статистика.ПолучитьИлиУмолчание("ТестовСломано", 0));
ЗаписьXML.ЗаписатьАтрибут("assertions", 0);
-
- ЗаписьXML.ЗаписатьАтрибут("time",
- (СтатистикаНабора.ПолучитьИлиУмолчание("ВремяЗавершения", 0)
- - СтатистикаНабора.ПолучитьИлиУмолчание("ВремяНачала", 0))
- / 1000
- );
+ ЗаписьXML.ЗаписатьАтрибут("time", Статистика.ПолучитьИлиУмолчание("ВремяВыполнения", 0) / 1000);
ЗаписьXML.ЗаписатьАтрибут(
"timestamp",
- XMLСтрока(СтатистикаНабора.ПолучитьИлиУмолчание("ДатаЗавершения", '00010101'))
+ XMLСтрока(Статистика.ПолучитьИлиУмолчание("ДатаЗавершения", '00010101'))
);
ЗаписьXML.ЗаписатьАтрибут("file", ТестНабор.Путь());
- Вывод = "";
- Причины = "";
-
- Если ЗавершенныеНаборы.СодержитКлюч(ТестНабор) Тогда
+ Результат = _РепортерСтатистика.Результат(ТестНабор);
- Результат = ЗавершенныеНаборы.Получить(ТестНабор).Получить();
+ Вывод = Результат.Вывод();
+ Причины = "";
+ ПричинаПропуска = "";
- Вывод = Результат.Вывод();
+ Если Результат.Состояние() = СостоянияВыполненияТестов.Ошибка
+ Или Результат.Состояние() = СостоянияВыполненияТестов.Сломан Тогда
Причины = Результат.Причины()
.ПроцессорКоллекции()
@@ -131,6 +118,11 @@
КонецЕсли;
+ Если Результат.Состояние() = СостоянияВыполненияТестов.Пропущен
+ Или Результат.Состояние() = СостоянияВыполненияТестов.Прерван Тогда
+ ПричинаПропуска = СтрСоединить(Результат.Причины().ВМассив(), Символы.ПС);
+ КонецЕсли;
+
ЗаписьXML.ЗаписатьНачалоЭлемента("properties");
ЗаписьXML.ЗаписатьНачалоЭлемента("property");
@@ -138,8 +130,6 @@
ЗаписьXML.ЗаписатьАтрибут("value", СтрСоединить(ТестНабор.Теги().ВМассив(), ","));
ЗаписьXML.ЗаписатьКонецЭлемента();
- ПричинаПропуска = ПропущенныеНаборы.Получить(ТестНабор).Иначе_("");
-
Если Не ПустаяСтрока(ПричинаПропуска) Тогда
ЗаписьXML.ЗаписатьНачалоЭлемента("property");
@@ -172,7 +162,7 @@
ЗаписьXML.ЗаписатьКонецЭлемента();
// TODO: Выводить ли детей если пропущен?
- Если ЗавершенныеНаборы.СодержитКлюч(ТестНабор) Тогда
+ Если Результат.Состояние() = СостоянияВыполненияТестов.Успех Тогда
Для Каждого Тест Из ТестНабор.Дети() Цикл
@@ -192,8 +182,6 @@
Процедура ВывестиТест(ЗаписьXML, Тест) Экспорт
- ЗавершенныеТесты = _РепортерСтатистика.ЗавершенныеТесты();
- ПропущенныеТесты = _РепортерСтатистика.ПропущенныеТесты();
СтатистикаТеста = _РепортерСтатистика.СтатистикаТеста(Тест);
ЗаписьXML.ЗаписатьНачалоЭлемента("testcase");
@@ -207,50 +195,44 @@
ЗаписьXML.ЗаписатьАтрибут("classname", Родитель.Имя());
ЗаписьXML.ЗаписатьАтрибут("assertions", 0);
-
- ЗаписьXML.ЗаписатьАтрибут("time",
- (СтатистикаТеста.ПолучитьИлиУмолчание("ВремяЗавершения", 0)
- - СтатистикаТеста.ПолучитьИлиУмолчание("ВремяНачала", 0))
- / 1000
- );
+ ЗаписьXML.ЗаписатьАтрибут("time", СтатистикаТеста.ПолучитьИлиУмолчание("ВремяВыполнения", 0) / 1000);
ЗаписьXML.ЗаписатьАтрибут("file", Тест.Путь());
ЗаписьXML.ЗаписатьАтрибут("line", 0);
- Вывод = "";
-
- Если ЗавершенныеТесты.СодержитКлюч(Тест) Тогда
+ Результат = _РепортерСтатистика.Результат(Тест);
- Результат = ЗавершенныеТесты.Получить(Тест).Получить();
+ Вывод = Результат.Вывод();
- Вывод = Результат.Вывод();
-
- Если Результат.Результат() = РезультатыВыполненияТестов.Ошибка Тогда
+ Если Результат.Состояние() = СостоянияВыполненияТестов.Ошибка
+ Или Результат.Состояние() = СостоянияВыполненияТестов.Сломан Тогда
+ Если Результат.Состояние() = СостоянияВыполненияТестов.Ошибка Тогда
ЗаписьXML.ЗаписатьНачалоЭлемента("failure");
- ЗаписьXML.ЗаписатьАтрибут("message", Результат.ОписанияПричин());
- ЗаписьXML.ЗаписатьАтрибут("type", "");
-
- ЗаписьXML.ЗаписатьТекст(Символы.ПС);
+ Иначе
+ ЗаписьXML.ЗаписатьНачалоЭлемента("error");
+ КонецЕсли;
- Причины = Результат.Причины()
- .ПроцессорКоллекции()
- .Обработать("Причина -> ТестированиеСлужебный.ПодробноеОписаниеОшибки(""Причина"", Причина)")
- .ВСтроку(Символы.ПС);
+ ЗаписьXML.ЗаписатьАтрибут("message", Результат.ОписанияПричин());
+ ЗаписьXML.ЗаписатьАтрибут("type", "");
- ЗаписьXML.ЗаписатьСекциюCDATA(Причины);
- ЗаписьXML.ЗаписатьТекст(Символы.ПС);
+ ЗаписьXML.ЗаписатьТекст(Символы.ПС);
- ЗаписьXML.ЗаписатьКонецЭлемента();
+ Причины = Результат.Причины()
+ .ПроцессорКоллекции()
+ .Обработать("Причина -> ТестированиеСлужебный.ПодробноеОписаниеОшибки(""Причина"", Причина)")
+ .ВСтроку(Символы.ПС);
- КонецЕсли;
+ ЗаписьXML.ЗаписатьСекциюCDATA(Причины);
+ ЗаписьXML.ЗаписатьТекст(Символы.ПС);
- Иначе
+ ЗаписьXML.ЗаписатьКонецЭлемента();
- Причина = ПропущенныеТесты.Получить(Тест).Иначе_("");
+ ИначеЕсли Результат.Состояние() = СостоянияВыполненияТестов.Пропущен
+ Или Результат.Состояние() = СостоянияВыполненияТестов.Прерван Тогда
ЗаписьXML.ЗаписатьНачалоЭлемента("skipped");
- ЗаписьXML.ЗаписатьАтрибут("message", Причина);
+ ЗаписьXML.ЗаписатьАтрибут("message", СтрСоединить(Результат.Причины().ВМассив(), Символы.ПС));
ЗаписьXML.ЗаписатьКонецЭлемента();
КонецЕсли;
diff --git "a/src/core/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\240\320\265\320\277\320\276\321\200\321\202\320\265\321\200OpenTestReport.os" "b/src/core/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\240\320\265\320\277\320\276\321\200\321\202\320\265\321\200OpenTestReport.os"
index f1cbe03..43cdc50 100644
--- "a/src/core/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\240\320\265\320\277\320\276\321\200\321\202\320\265\321\200OpenTestReport.os"
+++ "b/src/core/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\240\320\265\320\277\320\276\321\200\321\202\320\265\321\200OpenTestReport.os"
@@ -10,6 +10,7 @@
Перем СчетчикИдентификаторов;
Перем ИдентификаторыСобытий;
+Перем СтатусыПоСостояниям;
&ПодпискаНаСобытие("ИсполнениеТестПланНачало")
Процедура ИсполнениеТестПланНачало(ТестПлан) Экспорт
@@ -64,33 +65,6 @@
ВывестиКонец(ТестНабор, Результат);
КонецПроцедуры
-&ПодпискаНаСобытие("ИсполнениеТестНаборПропущен")
-Процедура ИсполнениеТестНаборПропущен(ТестНабор, Причина) Экспорт
-
- ВывестиНачало(ТестНабор);
-
- Статистика = _РепортерСтатистика.СтатистикаНабора(ТестНабор);
-
- ЗаписьXML.ЗаписатьНачалоЭлемента("finished", СобытияURI);
- ЗаписьXML.ЗаписатьАтрибут("id", ИдентификаторыСобытий.Получить(ТестНабор).Получить());
- ЗаписьXML.ЗаписатьАтрибут(
- "time",
- XMLСтрока(Статистика.ПолучитьИлиУмолчание("ДатаЗавершения", '00010101')) + "Z"
- );
-
- ЗаписьXML.ЗаписатьНачалоЭлемента("result", ЯдроURI);
- ЗаписьXML.ЗаписатьАтрибут("status", "SKIPPED");
-
- ЗаписьXML.ЗаписатьНачалоЭлемента("reason", ЯдроURI);
- ЗаписьXML.ЗаписатьСекциюCDATA(Причина);
- ЗаписьXML.ЗаписатьКонецЭлемента(); // reason
-
- ЗаписьXML.ЗаписатьКонецЭлемента(); // result
-
- ЗаписьXML.ЗаписатьКонецЭлемента(); // finished
-
-КонецПроцедуры
-
&ПодпискаНаСобытие("ИсполнениеТестНачало")
Процедура ИсполнениеТестНачало(Тест) Экспорт
ВывестиНачало(Тест);
@@ -101,33 +75,6 @@
ВывестиКонец(Тест, Результат);
КонецПроцедуры
-&ПодпискаНаСобытие("ИсполнениеТестПропущен")
-Процедура ИсполнениеТестПропущен(Тест, Причина) Экспорт
-
- ВывестиНачало(Тест);
-
- Статистика = _РепортерСтатистика.СтатистикаНабора(Тест);
-
- ЗаписьXML.ЗаписатьНачалоЭлемента("finished", СобытияURI);
- ЗаписьXML.ЗаписатьАтрибут("id", ИдентификаторыСобытий.Получить(Тест).Получить());
- ЗаписьXML.ЗаписатьАтрибут(
- "time",
- XMLСтрока(Статистика.ПолучитьИлиУмолчание("ДатаЗавершения", '00010101')) + "Z"
- );
-
- ЗаписьXML.ЗаписатьНачалоЭлемента("result", ЯдроURI);
- ЗаписьXML.ЗаписатьАтрибут("status", "SKIPPED");
-
- ЗаписьXML.ЗаписатьНачалоЭлемента("reason", ЯдроURI);
- ЗаписьXML.ЗаписатьСекциюCDATA(Причина);
- ЗаписьXML.ЗаписатьКонецЭлемента(); // reason
-
- ЗаписьXML.ЗаписатьКонецЭлемента(); // result
-
- ЗаписьXML.ЗаписатьКонецЭлемента(); // finished
-
-КонецПроцедуры
-
Процедура ВывестиНачало(Определение)
СчетчикИдентификаторов = СчетчикИдентификаторов + 1;
@@ -237,7 +184,9 @@
Для каждого Причина Из Результат.Причины() Цикл
- ИнформацияОбОшибке = Причина;
+ Если ТипЗнч(Причина) <> Тип("ИнформацияОбОшибке") Тогда
+ Продолжить;
+ КонецЕсли;
ЗаписьXML.ЗаписатьНачалоЭлемента("output", ЯдроURI);
@@ -247,9 +196,7 @@
"time",
XMLСтрока(Статистика.ПолучитьИлиУмолчание("ДатаЗавершения", '00010101')) + "Z"
);
- ЗаписьXML.ЗаписатьСекциюCDATA(
- ТестированиеСлужебный.ПодробноеОписаниеОшибки("Причина", ИнформацияОбОшибке)
- );
+ ЗаписьXML.ЗаписатьСекциюCDATA(ТестированиеСлужебный.ПодробноеОписаниеОшибки("Причина", Причина));
ЗаписьXML.ЗаписатьКонецЭлемента(); // output
КонецЦикла;
@@ -266,11 +213,22 @@
ЗаписьXML.ЗаписатьНачалоЭлемента("result", ЯдроURI);
- Если Результат.Результат() = РезультатыВыполненияТестов.Ошибка
- Или Статистика.ПолучитьИлиУмолчание("ТестовОшибка", 0) > 0 Тогда
- ЗаписьXML.ЗаписатьАтрибут("status", "FAILED");
+ Если Статистика.ПолучитьИлиУмолчание("ТестовСломано", 0) > 0 Тогда
+ Состояние = СостоянияВыполненияТестов.Сломан;
+ ИначеЕсли Статистика.ПолучитьИлиУмолчание("ТестовОшибка", 0) > 0 Тогда
+ Состояние = СостоянияВыполненияТестов.Ошибка;
Иначе
- ЗаписьXML.ЗаписатьАтрибут("status", "SUCCESSFUL");
+ Состояние = СостоянияВыполненияТестов.Успех;
+ КонецЕсли;
+
+ ЗаписьXML.ЗаписатьАтрибут("status", СтатусыПоСостояниям.Получить(
+ СостоянияВыполненияТестов.НаихудшееСостояние(Результат.Состояние(), Состояние)
+ ).Получить());
+
+ Если Не Результат.ОписанияПричин().Пусто() Тогда
+ ЗаписьXML.ЗаписатьНачалоЭлемента("reason", ЯдроURI);
+ ЗаписьXML.ЗаписатьСекциюCDATA(Результат.ОписанияПричин());
+ ЗаписьXML.ЗаписатьКонецЭлемента(); // reason
КонецЕсли;
ЗаписьXML.ЗаписатьКонецЭлемента(); // result
@@ -291,4 +249,11 @@
СчетчикИдентификаторов = 0;
ИдентификаторыСобытий = Новый КартаСоответствие();
+ СтатусыПоСостояниям = Новый КартаСоответствие();
+ СтатусыПоСостояниям.Вставить(СостоянияВыполненияТестов.Успех, "SUCCESSFUL");
+ СтатусыПоСостояниям.Вставить(СостоянияВыполненияТестов.Пропущен, "SKIPPED");
+ СтатусыПоСостояниям.Вставить(СостоянияВыполненияТестов.Прерван, "ABORTED");
+ СтатусыПоСостояниям.Вставить(СостоянияВыполненияТестов.Ошибка, "FAILED");
+ СтатусыПоСостояниям.Вставить(СостоянияВыполненияТестов.Сломан, "ERRORED");
+
КонецПроцедуры
diff --git "a/src/core/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\240\320\265\320\277\320\276\321\200\321\202\320\265\321\200\320\233\320\276\320\263\320\224\320\265\321\200\320\265\320\262\320\276.os" "b/src/core/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\240\320\265\320\277\320\276\321\200\321\202\320\265\321\200\320\233\320\276\320\263\320\224\320\265\321\200\320\265\320\262\320\276.os"
index 00571fc..d0d19a4 100644
--- "a/src/core/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\240\320\265\320\277\320\276\321\200\321\202\320\265\321\200\320\233\320\276\320\263\320\224\320\265\321\200\320\265\320\262\320\276.os"
+++ "b/src/core/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\240\320\265\320\277\320\276\321\200\321\202\320\265\321\200\320\233\320\276\320\263\320\224\320\265\321\200\320\265\320\262\320\276.os"
@@ -2,11 +2,12 @@
Перем _Лог;
Перем _РепортерСтатистика;
-Перем _КодировкиUTF;
Перем Префикс;
Перем ТекущийКонтейнер;
+Перем ЗапаркованныйКонтейнер;
+
Процедура ВывестиТестПлан(ТестПлан) Экспорт
ИсполнениеТестПланНачало(ТестПлан);
@@ -55,20 +56,13 @@
&ПодпискаНаСобытие("ИсполнениеТестНаборНачало")
Процедура ИсполнениеТестНаборНачало(ТестНабор) Экспорт
- ВыводКонтейнера(ТестНабор);
+ ЗапаркованныйКонтейнер = ТестНабор;
КонецПроцедуры
&ПодпискаНаСобытие("ИсполнениеТестНаборКонец")
Процедура ИсполнениеТестНаборКонец(ТестНабор, Результат) Экспорт
- Префикс.Удалить(Префикс.Получить(Префикс.ВГраница()));
- ТекущийКонтейнер = ТестНабор.Родитель();
-КонецПроцедуры
-
-&ПодпискаНаСобытие("ИсполнениеТестНаборПропущен")
-Процедура ИсполнениеТестНаборПропущен(ТестНабор, Причина) Экспорт
-
- ВыводКонтейнера(ТестНабор, Причина);
+ РаспарковатьКонтейнер(Результат);
Префикс.Удалить(Префикс.Получить(Префикс.ВГраница()));
ТекущийКонтейнер = ТестНабор.Родитель();
@@ -76,6 +70,7 @@
&ПодпискаНаСобытие("ИсполнениеТестНачало")
Процедура ИсполнениеТестНачало(Тест) Экспорт
+ РаспарковатьКонтейнер();
Если Тест.ТипОпределения() = ТипыОпределенийТестов.Контейнер Тогда
ВыводКонтейнера(Тест);
КонецЕсли;
@@ -111,27 +106,6 @@
КонецПроцедуры
-&ПодпискаНаСобытие("ИсполнениеТестПропущен")
-Процедура ИсполнениеТестПропущен(Тест, Причина) Экспорт
-
- ЭтоПоследний = ТекущийКонтейнер.Дети().Индекс(Тест) = ТекущийКонтейнер.Дети().ВГраница();
-
- Если ЭтоПоследний Тогда
- Префикс.Добавить("└─");
- Иначе
- Префикс.Добавить("├─");
- КонецЕсли;
-
- ТекущийКонтейнер = Тест;
-
- ВывестиВЛог(Причина);
-
- Префикс.Удалить(Префикс.Получить(Префикс.ВГраница()));
-
- ТекущийКонтейнер = Тест.Родитель();
-
-КонецПроцедуры
-
Процедура ВыводКонтейнера(Контейнер, РезультатВыполнения = Неопределено) Экспорт
ЭтоПоследний = ТекущийКонтейнер.Дети().Индекс(Контейнер) = ТекущийКонтейнер.Дети().ВГраница();
@@ -154,19 +128,15 @@
КонецПроцедуры
-Процедура ВывестиВЛог(РезультатВыполнения = Неопределено)
+Процедура ВывестиВЛог(РезультатВыполнения)
Поля = Новый КартаСоответствие();
Поля.Вставить("УровеньДерева", СтрСоединить(Префикс.ВМассив(), ""));
Поля.Вставить("ИмяТеста", ТекущийКонтейнер);
- Уровень = УровниЛога.Информация;
+ Если РезультатВыполнения <> Неопределено Тогда
- Если ТипЗнч(РезультатВыполнения) = Тип("РезультатВыполненияТеста") Тогда
-
- Если РезультатВыполнения.Результат() = РезультатыВыполненияТестов.Ошибка Тогда
- Уровень = УровниЛога.Ошибка;
- КонецЕсли;
+ Уровень = СостоянияВыполненияТестов.УровеньЛогаСостояния(РезультатВыполнения.Состояние());
Причины = РезультатВыполнения.ОписанияПричин();
Если Не Причины.Пусто() Тогда
@@ -175,19 +145,14 @@
Статистика = _РепортерСтатистика.СтатистикаТеста(ТекущийКонтейнер);
- Поля.Вставить("Результат", РезультатДляВывода(РезультатВыполнения.Результат()));
+ Поля.Вставить("Результат", СостоянияВыполненияТестов.СимволСостояния(РезультатВыполнения.Состояние()));
Поля.Вставить(
"ВремяВыполнения",
- Статистика.ПолучитьИлиУмолчание("ВремяЗавершения", 0) -
- Статистика.ПолучитьИлиУмолчание("ВремяНачала", 0)
+ Статистика.ПолучитьИлиУмолчание("ВремяВыполнения", 0)
);
- ИначеЕсли ТипЗнч(РезультатВыполнения) = Тип("Строка") Тогда
- Уровень = УровниЛога.Предупреждение;
- Поля.Вставить("Причина", РезультатВыполнения);
- Поля.Вставить("Результат", РезультатДляВывода(Неопределено));
Иначе
- // no-op
+ Уровень = УровниЛога.Информация;
КонецЕсли;
_Лог.ПоляИз(Поля.КлючиИЗначения())
@@ -195,41 +160,17 @@
КонецПроцедуры
-Функция РезультатДляВывода(Результат)
-
- Если _КодировкиUTF.Содержит(Консоль.КодировкаВходногоПотока) Тогда
- Успех = "✔";
- Ошибка = "✘";
- Пропуск = "↷";
- Иначе
- Успех = "V";
- Ошибка = "X";
- Пропуск = "О";
+Процедура РаспарковатьКонтейнер(РезультатВыполнения = Неопределено)
+ Если ЗначениеЗаполнено(ЗапаркованныйКонтейнер) Тогда
+ ВыводКонтейнера(ЗапаркованныйКонтейнер, РезультатВыполнения);
+ ЗапаркованныйКонтейнер = Неопределено;
КонецЕсли;
-
- Если Результат = РезультатыВыполненияТестов.Успех Тогда
- Возврат Успех;
- ИначеЕсли Результат = РезультатыВыполненияТестов.Ошибка Тогда
- Возврат Ошибка;
- Иначе
- Возврат Пропуск;
- КонецЕсли;
-
-КонецФункции
+КонецПроцедуры
&Желудь
Процедура ПриСозданииОбъекта(
&Лог("oscript.lib.oneunit.core") Лог,
&Пластилин РепортерСтатистика)
-
_Лог = Лог;
-
_РепортерСтатистика = РепортерСтатистика;
-
- _КодировкиUTF = Списки.ИзЭлементов(
- КодировкаТекста.UTF8,
- КодировкаТекста.UTF8NoBOM,
- КодировкаТекста.UTF16
- );
-
КонецПроцедуры
diff --git "a/src/core/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\240\320\265\320\277\320\276\321\200\321\202\320\265\321\200\320\233\320\276\320\263\320\237\320\273\320\276\321\201\320\272\320\270\320\271\320\241\320\277\320\270\321\201\320\276\320\272.os" "b/src/core/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\240\320\265\320\277\320\276\321\200\321\202\320\265\321\200\320\233\320\276\320\263\320\237\320\273\320\276\321\201\320\272\320\270\320\271\320\241\320\277\320\270\321\201\320\276\320\272.os"
index 2195dac..cdbd92c 100644
--- "a/src/core/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\240\320\265\320\277\320\276\321\200\321\202\320\265\321\200\320\233\320\276\320\263\320\237\320\273\320\276\321\201\320\272\320\270\320\271\320\241\320\277\320\270\321\201\320\276\320\272.os"
+++ "b/src/core/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\240\320\265\320\277\320\276\321\200\321\202\320\265\321\200\320\233\320\276\320\263\320\237\320\273\320\276\321\201\320\272\320\270\320\271\320\241\320\277\320\270\321\201\320\276\320\272.os"
@@ -22,11 +22,6 @@
КонецПроцедуры
-&ПодпискаНаСобытие("ИсполнениеТестНаборПропущен")
-Процедура ИсполнениеТестНаборПропущен(ТестНабор, Причина) Экспорт
- ВывестиВЛог(ТестНабор, Причина);
-КонецПроцедуры
-
&ПодпискаНаСобытие("ИсполнениеТестКонец")
Процедура ИсполнениеТестКонец(Тест, Результат) Экспорт
@@ -36,23 +31,16 @@
КонецПроцедуры
-&ПодпискаНаСобытие("ИсполнениеТестПропущен")
-Процедура ИсполнениеТестПропущен(Тест, Причина) Экспорт
- ВывестиВЛог(Тест, Причина);
-КонецПроцедуры
-
-Процедура ВывестиВЛог(Определение, РезультатВыполнения = Неопределено)
+Процедура ВывестиВЛог(Определение, РезультатВыполнения)
Поля = Новый КартаСоответствие;
Поля.Вставить("ИмяТеста", Определение.ПолноеИмя());
- Уровень = УровниЛога.Информация;
-
- Если ТипЗнч(РезультатВыполнения) = Тип("РезультатВыполненияТеста") Тогда
+ Если РезультатВыполнения = Неопределено Тогда
+ Уровень = УровниЛога.Информация;
+ Иначе
- Если РезультатВыполнения.Результат() = РезультатыВыполненияТестов.Ошибка Тогда
- Уровень = УровниЛога.Ошибка;
- КонецЕсли;
+ Уровень = СостоянияВыполненияТестов.УровеньЛогаСостояния(РезультатВыполнения.Состояние());
Причины = РезультатВыполнения.ОписанияПричин();
Если Не Причины.Пусто() Тогда
@@ -61,19 +49,9 @@
Статистика = _РепортерСтатистика.СтатистикаТеста(Определение);
- Поля.Вставить("Результат", РезультатДляВывода(РезультатВыполнения.Результат()));
- Поля.Вставить(
- "ВремяВыполнения",
- Статистика.ПолучитьИлиУмолчание("ВремяЗавершения", 0) -
- Статистика.ПолучитьИлиУмолчание("ВремяНачала", 0)
- );
-
- ИначеЕсли ТипЗнч(РезультатВыполнения) = Тип("Строка") Тогда
- Уровень = УровниЛога.Предупреждение;
- Поля.Вставить("Причина", РезультатВыполнения);
- Поля.Вставить("Результат", РезультатДляВывода(Неопределено));
- Иначе
- // no-op
+ Поля.Вставить("Результат", СостоянияВыполненияТестов.СимволСостояния(РезультатВыполнения.Состояние()));
+ Поля.Вставить("ВремяВыполнения", Статистика.ПолучитьИлиУмолчание("ВремяВыполнения", 0));
+
КонецЕсли;
_Лог.ПоляИз(Поля.КлючиИЗначения())
@@ -81,28 +59,6 @@
КонецПроцедуры
-Функция РезультатДляВывода(Результат)
-
- Если _КодировкиUTF.Содержит(Консоль.КодировкаВходногоПотока) Тогда
- Успех = "✔";
- Ошибка = "✘";
- Пропуск = "↷";
- Иначе
- Успех = "V";
- Ошибка = "X";
- Пропуск = "О";
- КонецЕсли;
-
- Если Результат = РезультатыВыполненияТестов.Успех Тогда
- Возврат Успех;
- ИначеЕсли Результат = РезультатыВыполненияТестов.Ошибка Тогда
- Возврат Ошибка;
- Иначе
- Возврат Пропуск;
- КонецЕсли;
-
-КонецФункции
-
&Желудь
Процедура ПриСозданииОбъекта(
&Лог("oscript.lib.oneunit.core") Лог,
diff --git "a/src/core/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\240\320\265\320\277\320\276\321\200\321\202\320\265\321\200\320\241\321\202\320\260\321\202\320\270\321\201\321\202\320\270\320\272\320\260.os" "b/src/core/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\240\320\265\320\277\320\276\321\200\321\202\320\265\321\200\320\241\321\202\320\260\321\202\320\270\321\201\321\202\320\270\320\272\320\260.os"
index 5a4dff3..4915617 100644
--- "a/src/core/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\240\320\265\320\277\320\276\321\200\321\202\320\265\321\200\320\241\321\202\320\260\321\202\320\270\321\201\321\202\320\270\320\272\320\260.os"
+++ "b/src/core/internal/\320\232\320\273\320\260\321\201\321\201\321\213/\320\240\320\265\320\277\320\276\321\200\321\202\320\265\321\200\320\241\321\202\320\260\321\202\320\270\321\201\321\202\320\270\320\272\320\260.os"
@@ -10,13 +10,7 @@
Перем СтатистикаТестНаборов;
Перем СтатистикаТестов;
-Перем ЗавершенныеТесты;
-Перем ПропущенныеТесты;
-
-Перем ЗавершенныеНаборы;
-Перем ПропущенныеНаборы;
-
-Перем Ошибки;
+Перем Результаты;
#КонецОбласти
@@ -46,20 +40,9 @@
КонецФункции
-Функция ЗавершенныеНаборы() Экспорт
- Возврат ЗавершенныеНаборы;
-КонецФункции
-
-Функция ПропущенныеНаборы() Экспорт
- Возврат ПропущенныеНаборы;
-КонецФункции
-
-Функция ЗавершенныеТесты() Экспорт
- Возврат ЗавершенныеТесты;
-КонецФункции
-
-Функция ПропущенныеТесты() Экспорт
- Возврат ПропущенныеТесты;
+Функция Результат(Определение) Экспорт
+ Возврат Результаты.Получить(Определение)
+ .Получить();
КонецФункции
#КонецОбласти
@@ -73,13 +56,7 @@
СтатистикаТестНаборов = Новый КартаСоответствие();
СтатистикаТестов = Новый КартаСоответствие();
- ЗавершенныеТесты = Новый КартаСоответствие();
- ПропущенныеТесты = Новый КартаСоответствие();
-
- ЗавершенныеНаборы = Новый КартаСоответствие();
- ПропущенныеНаборы = Новый КартаСоответствие();
-
- Ошибки = Новый КартаСоответствие;
+ Результаты = Новый КартаСоответствие;
СтатистикаТестПлана.Вставить("ВремяНачала", ТекущаяУниверсальнаяДатаВМиллисекундах());
СтатистикаТестПлана.Вставить("ДатаНачала", МестноеВремя('00010101' + (ТекущаяУниверсальнаяДатаВМиллисекундах() / 1000)));
@@ -92,13 +69,14 @@
СтатистикаТестПлана.Вставить("ВремяЗавершения", ТекущаяУниверсальнаяДатаВМиллисекундах());
СтатистикаТестПлана.Вставить("ДатаЗавершения", МестноеВремя('00010101' + (ТекущаяУниверсальнаяДатаВМиллисекундах() / 1000)));
- Если Не Ошибки.Пусто() Тогда
- ВывестиОшибки();
- КонецЕсли;
+ СтатистикаТестПлана.Вставить(
+ "ВремяВыполнения",
+ СтатистикаТестПлана.ПолучитьИлиУмолчание("ВремяЗавершения", 0)
+ - СтатистикаТестПлана.ПолучитьИлиУмолчание("ВремяНачала", 0)
+ );
- Если Не Ошибки.Пусто() Или _РежимВыводаЛога <> РежимыВыводаЛога.Ничего Тогда
- ВывестиСтатистику();
- КонецЕсли;
+ ВывестиОшибки();
+ ВывестиСтатистику();
КонецПроцедуры
@@ -115,39 +93,38 @@
СтатистикаНабора(ТестНабор).Вставить("ВремяЗавершения", ТекущаяУниверсальнаяДатаВМиллисекундах());
СтатистикаНабора(ТестНабор).Вставить("ДатаЗавершения", МестноеВремя('00010101' + (ТекущаяУниверсальнаяДатаВМиллисекундах() / 1000)));
- ЗавершенныеНаборы.Вставить(ТестНабор, Результат);
-
- Если Результат.Результат() = РезультатыВыполненияТестов.Ошибка Тогда
- Ошибки.Вставить(ТестНабор, Результат);
- СтатистикаТестПлана.Слить("НаборовОшибка", 1, "Было, Добавлено -> Было + Добавлено");
- Иначе
+ СтатистикаНабора(ТестНабор).Вставить(
+ "ВремяВыполнения",
+ СтатистикаНабора(ТестНабор).ПолучитьИлиУмолчание("ВремяЗавершения", 0)
+ - СтатистикаНабора(ТестНабор).ПолучитьИлиУмолчание("ВремяНачала", 0)
+ );
- // Проверим есть ли упавшие дети, если есть то набор для статистики ошибочный
- Если СтатистикаНабора(ТестНабор).ПолучитьИлиУмолчание("ТестовОшибка", 0) > 0 Тогда
- СтатистикаТестПлана.Слить("НаборовОшибка", 1, "Было, Добавлено -> Было + Добавлено");
- Иначе
- СтатистикаТестПлана.Слить("НаборовУспешно", 1, "Было, Добавлено -> Было + Добавлено");
- КонецЕсли;
+ Результаты.Вставить(ТестНабор, Результат);
+ // Проверим есть ли упавшие дети
+ Если СтатистикаНабора(ТестНабор).ПолучитьИлиУмолчание("ТестовСломано", 0) > 0 Тогда
+ Состояние = СостоянияВыполненияТестов.Сломан;
+ ИначеЕсли СтатистикаНабора(ТестНабор).ПолучитьИлиУмолчание("ТестовОшибка", 0) > 0 Тогда
+ Состояние = СостоянияВыполненияТестов.Ошибка;
+ Иначе
+ Состояние = СостоянияВыполненияТестов.Успех;
КонецЕсли;
-КонецПроцедуры
-
-&ПодпискаНаСобытие("ИсполнениеТестНаборПропущен")
-Процедура ИсполнениеТестНаборПропущен(ТестНабор, Причина) Экспорт
-
- Время = ТекущаяУниверсальнаяДатаВМиллисекундах();
- Дата = МестноеВремя('00010101' + (ТекущаяУниверсальнаяДатаВМиллисекундах() / 1000));
-
- СтатистикаНабора(ТестНабор).Вставить("ВремяНачала", Время);
- СтатистикаНабора(ТестНабор).Вставить("ДатаНачала", Дата);
- СтатистикаНабора(ТестНабор).Вставить("ВремяЗавершения", Время);
- СтатистикаНабора(ТестНабор).Вставить("ДатаЗавершения", Дата);
+ Состояние = СостоянияВыполненияТестов.НаихудшееСостояние(Состояние, Результат.Состояние());
- ПропущенныеНаборы.Вставить(ТестНабор, Причина);
+ Если Состояние = СостоянияВыполненияТестов.Пропущен Тогда
+ Ключ = "НаборовПропущено";
+ ИначеЕсли Состояние = СостоянияВыполненияТестов.Прерван Тогда
+ Ключ = "НаборовПрервано";
+ ИначеЕсли Состояние = СостоянияВыполненияТестов.Ошибка Тогда
+ Ключ = "НаборовОшибка";
+ ИначеЕсли Состояние = СостоянияВыполненияТестов.Сломан Тогда
+ Ключ = "НаборовСломано";
+ Иначе
+ Ключ = "НаборовУспешно";
+ КонецЕсли;
- СтатистикаТестПлана.Слить("НаборовОбнаружено", 1, "Было, Добавлено -> Было + Добавлено");
- СтатистикаТестПлана.Слить("НаборовПропущено", 1, "Было, Добавлено -> Было + Добавлено");
+ СтатистикаТестПлана.Слить(Ключ, 1, "Было, Добавлено -> Было + Добавлено");
КонецПроцедуры
@@ -170,36 +147,44 @@
&ПодпискаНаСобытие("ИсполнениеТестКонец")
Процедура ИсполнениеТестКонец(Тест, Результат) Экспорт
- СтатистикаТеста(Тест).Вставить("ВремяЗавершения", ТекущаяУниверсальнаяДатаВМиллисекундах());
- СтатистикаТеста(Тест).Вставить("ДатаЗавершения", МестноеВремя('00010101' + (ТекущаяУниверсальнаяДатаВМиллисекундах() / 1000)));
+ СтатистикаТеста(Тест).Вставить(
+ "ВремяЗавершения",
+ ТекущаяУниверсальнаяДатаВМиллисекундах()
+ );
+
+ СтатистикаТеста(Тест).Вставить(
+ "ДатаЗавершения",
+ МестноеВремя('00010101' + (ТекущаяУниверсальнаяДатаВМиллисекундах() / 1000))
+ );
+
+ СтатистикаТеста(Тест).Вставить(
+ "ВремяВыполнения",
+ СтатистикаТеста(Тест).ПолучитьИлиУмолчание("ВремяЗавершения", 0)
+ - СтатистикаТеста(Тест).ПолучитьИлиУмолчание("ВремяНачала", 0)
+ );
- ЗавершенныеТесты.Вставить(Тест, Результат);
+ Результаты.Вставить(Тест, Результат);
Если Тест.ТипОпределения() = ТипыОпределенийТестов.Тест Тогда
- Если Результат.Результат() = РезультатыВыполненияТестов.Ошибка Тогда
- СтатистикаТестПлана.Слить("ТестовОшибка", 1, "Было, Добавлено -> Было + Добавлено");
- СтатистикаНабора(Тест).Слить("ТестовОшибка", 1, "Было, Добавлено -> Было + Добавлено");
- Ошибки.Вставить(Тест, Результат);
+ Если Результат.Состояние() = СостоянияВыполненияТестов.Успех Тогда
+ Ключ = "ТестовУспешно";
+ ИначеЕсли Результат.Состояние() = СостоянияВыполненияТестов.Пропущен Тогда
+ Ключ = "ТестовПропущено";
+ ИначеЕсли Результат.Состояние() = СостоянияВыполненияТестов.Прерван Тогда
+ Ключ = "ТестовПрервано";
+ ИначеЕсли Результат.Состояние() = СостоянияВыполненияТестов.Ошибка Тогда
+ Ключ = "ТестовОшибка";
+ ИначеЕсли Результат.Состояние() = СостоянияВыполненияТестов.Сломан Тогда
+ Ключ = "ТестовСломано";
Иначе
- СтатистикаТестПлана.Слить("ТестовУспешно", 1, "Было, Добавлено -> Было + Добавлено");
- СтатистикаНабора(Тест).Слить("ТестовУспешно", 1, "Было, Добавлено -> Было + Добавлено");
+ ВызватьИсключение "Неизвестное состояние выполнения теста";
КонецЕсли;
- КонецЕсли;
-
-КонецПроцедуры
-
-&ПодпискаНаСобытие("ИсполнениеТестПропущен")
-Процедура ИсполнениеТестПропущен(Тест, Причина) Экспорт
-
- ПропущенныеТесты.Вставить(Тест, Причина);
-
- СтатистикаТестПлана.Слить("ТестовОбнаружено", 1, "Было, Добавлено -> Было + Добавлено");
- СтатистикаТестПлана.Слить("ТестовПропущено", 1, "Было, Добавлено -> Было + Добавлено");
+ СтатистикаТестПлана.Слить(Ключ, 1, "Было, Добавлено -> Было + Добавлено");
+ СтатистикаНабора(Тест).Слить(Ключ, 1, "Было, Добавлено -> Было + Добавлено");
- СтатистикаНабора(Тест).Слить("ТестовОбнаружено", 1, "Было, Добавлено -> Было + Добавлено");
- СтатистикаНабора(Тест).Слить("ТестовПропущено", 1, "Было, Добавлено -> Было + Добавлено");
+ КонецЕсли;
КонецПроцедуры
@@ -209,7 +194,15 @@
Процедура ВывестиОшибки()
- Для Каждого ТестИРезультат Из Ошибки.КлючиИЗначения() Цикл
+ Ошибки = Результаты.КлючиИЗначения()
+ .ПроцессорКоллекции()
+ .Фильтровать(
+ "(КиЗ) -> Возврат КиЗ.Значение.Состояние() = СостоянияВыполненияТестов.Ошибка
+ | Или КиЗ.Значение.Состояние() = СостоянияВыполненияТестов.Сломан"
+ )
+ .ВМассив();
+
+ Для Каждого ТестИРезультат Из Ошибки Цикл
Тест = ТестИРезультат.Ключ;
РезультатВыполнения = ТестИРезультат.Значение;
@@ -251,54 +244,79 @@
Процедура ВывестиСтатистику()
+ ЕстьОшибки = Результаты.Значения()
+ .ПроцессорКоллекции()
+ .ЛюбойСоответствует(
+ "(З) -> З.Состояние() = СостоянияВыполненияТестов.Ошибка Или З.Состояние() = СостоянияВыполненияТестов.Сломан"
+ );
+
+ Если Не ЕстьОшибки И _РежимВыводаЛога = РежимыВыводаЛога.Ничего Тогда
+ Возврат;
+ КонецЕсли;
+
ВремяНачала = СтатистикаТестПлана.ПолучитьИлиУмолчание("ВремяНачала", 0);
ВремяЗавершения = СтатистикаТестПлана.ПолучитьИлиУмолчание("ВремяЗавершения", 0);
НаборовОбнаружено = СтатистикаТестПлана.ПолучитьИлиУмолчание("НаборовОбнаружено", 0);
НаборовПропущено = СтатистикаТестПлана.ПолучитьИлиУмолчание("НаборовПропущено", 0);
+ НаборовПрервано = СтатистикаТестПлана.ПолучитьИлиУмолчание("НаборовПрервано", 0);
НаборовУспешно = СтатистикаТестПлана.ПолучитьИлиУмолчание("НаборовУспешно", 0);
- НаборовОшибка = СтатистикаТестПлана.ПолучитьИлиУмолчание("НаборовОшибка", 0);
+ НаборовОшибка = СтатистикаТестПлана.ПолучитьИлиУмолчание("НаборовОшибка", 0)
+ + СтатистикаТестПлана.ПолучитьИлиУмолчание("НаборовСломано", 0);
ТестовОбнаружено = СтатистикаТестПлана.ПолучитьИлиУмолчание("ТестовОбнаружено", 0);
ТестовПропущено = СтатистикаТестПлана.ПолучитьИлиУмолчание("ТестовПропущено", 0);
+ ТестовПрервано = СтатистикаТестПлана.ПолучитьИлиУмолчание("ТестовПрервано", 0);
ТестовУспешно = СтатистикаТестПлана.ПолучитьИлиУмолчание("ТестовУспешно", 0);
- ТестовОшибка = СтатистикаТестПлана.ПолучитьИлиУмолчание("ТестовОшибка", 0);
+ ТестовОшибка = СтатистикаТестПлана.ПолучитьИлиУмолчание("ТестовОшибка", 0)
+ + СтатистикаТестПлана.ПолучитьИлиУмолчание("ТестовСломано", 0);
- МаксимумРазрядов = Макс(НаборовОбнаружено, НаборовПропущено);
- МаксимумРазрядов = Макс(МаксимумРазрядов, НаборовУспешно);
- МаксимумРазрядов = Макс(МаксимумРазрядов, НаборовОшибка);
- МаксимумРазрядов = Макс(МаксимумРазрядов, ТестовОбнаружено);
- МаксимумРазрядов = Макс(МаксимумРазрядов, ТестовПропущено);
- МаксимумРазрядов = Макс(МаксимумРазрядов, ТестовУспешно);
- МаксимумРазрядов = Макс(МаксимумРазрядов, ТестовОшибка);
+ МаксимумРазрядов = Макс(
+ НаборовОбнаружено, НаборовПропущено, НаборовПрервано, НаборовУспешно, НаборовОшибка,
+ ТестовОбнаружено, ТестовПропущено, ТестовПрервано, ТестовУспешно, ТестовОшибка
+ );
МаксимумРазрядов = СтрДлина(МаксимумРазрядов);
- _Лог.Информация(
- "
- | Запуск тестов завершился за %1 мс
- |
- |[ %2 Наборов обнаружено ]
- |[ %3 Наборов пропущено ]
+ СообщениеСтатистикаНаборов = СтрШаблон(
+ "[ %1 Наборов обнаружено ]
+ |[ %2 Наборов пропущено ]
+ |[ %3 Наборов прервано ]
|[ %4 Наборов успешных ]
- |[ %5 Наборов ошибочных ]
- |
- |[ %6 Тестов обнаружено ]
- |[ %7 Тестов пропущено ]
- |[ %8 Тестов успешных ]
- |[ %9 Тестов ошибочных ]
- |",
- ВремяЗавершения - ВремяНачала,
+ |[ %5 Наборов ошибочных ]",
ПривестиКДлине(НаборовОбнаружено, МаксимумРазрядов),
ПривестиКДлине(НаборовПропущено, МаксимумРазрядов),
+ ПривестиКДлине(НаборовПрервано, МаксимумРазрядов),
ПривестиКДлине(НаборовУспешно, МаксимумРазрядов),
- ПривестиКДлине(НаборовОшибка, МаксимумРазрядов),
+ ПривестиКДлине(НаборовОшибка, МаксимумРазрядов)
+ );
+
+ СообщениеСтатистикаТестов = СтрШаблон(
+ "[ %1 Тестов обнаружено ]
+ |[ %2 Тестов пропущено ]
+ |[ %3 Тестов прервано ]
+ |[ %4 Тестов успешных ]
+ |[ %5 Тестов ошибочных ]",
ПривестиКДлине(ТестовОбнаружено, МаксимумРазрядов),
ПривестиКДлине(ТестовПропущено, МаксимумРазрядов),
+ ПривестиКДлине(ТестовПрервано, МаксимумРазрядов),
ПривестиКДлине(ТестовУспешно, МаксимумРазрядов),
ПривестиКДлине(ТестовОшибка, МаксимумРазрядов)
);
+ _Лог.Информация(
+ "
+ | Запуск тестов завершился за %1 мс
+ |
+ |%2
+ |
+ |%3
+ |",
+ ВремяЗавершения - ВремяНачала,
+ СообщениеСтатистикаНаборов,
+ СообщениеСтатистикаТестов
+ );
+
КонецПроцедуры
Функция ПривестиКДлине(Знач Значение, Длина)
diff --git "a/src/core/internal/\320\234\320\276\320\264\321\203\320\273\320\270/\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202\321\213\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262.os" "b/src/core/internal/\320\234\320\276\320\264\321\203\320\273\320\270/\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202\321\213\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262.os"
deleted file mode 100644
index 02d954d..0000000
--- "a/src/core/internal/\320\234\320\276\320\264\321\203\320\273\320\270/\320\240\320\265\320\267\321\203\320\273\321\214\321\202\320\260\321\202\321\213\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262.os"
+++ /dev/null
@@ -1,5 +0,0 @@
-Перем Успех Экспорт;
-Перем Ошибка Экспорт;
-
-Успех = "Успех";
-Ошибка = "Ошибка";
diff --git "a/src/core/internal/\320\234\320\276\320\264\321\203\320\273\320\270/\320\241\320\276\321\201\321\202\320\276\321\217\320\275\320\270\321\217\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262.os" "b/src/core/internal/\320\234\320\276\320\264\321\203\320\273\320\270/\320\241\320\276\321\201\321\202\320\276\321\217\320\275\320\270\321\217\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262.os"
new file mode 100644
index 0000000..55e3405
--- /dev/null
+++ "b/src/core/internal/\320\234\320\276\320\264\321\203\320\273\320\270/\320\241\320\276\321\201\321\202\320\276\321\217\320\275\320\270\321\217\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217\320\242\320\265\321\201\321\202\320\276\320\262.os"
@@ -0,0 +1,93 @@
+#Использовать collectionos
+
+Перем Успех Экспорт;
+Перем Пропущен Экспорт;
+Перем Прерван Экспорт;
+Перем Ошибка Экспорт;
+Перем Сломан Экспорт;
+
+Перем _КодировкиUTF;
+Перем ПриоритетыСостояний;
+Перем СостоянияПриоритетов;
+
+Функция СимволСостояния(Состояние) Экспорт
+
+ Если _КодировкиUTF.Содержит(Консоль.КодировкаВходногоПотока) Тогда
+ СимволУспех = "✔";
+ СимволПропуск = "↷";
+ СимволПрерван = "⊚";
+ СимволОшибка = "✘";
+ СимволСломан = "⊝";
+ Иначе
+ СимволУспех = "V";
+ СимволПропуск = "О";
+ СимволПрерван = "0";
+ СимволОшибка = "X";
+ СимволСломан = "-";
+ КонецЕсли;
+
+ Если Состояние = Успех Тогда
+ Возврат СимволУспех;
+ ИначеЕсли Состояние = Пропущен Тогда
+ Возврат СимволПропуск;
+ ИначеЕсли Состояние = Прерван Тогда
+ Возврат СимволПрерван;
+ ИначеЕсли Состояние = Ошибка Тогда
+ Возврат СимволОшибка;
+ Иначе
+ Возврат СимволСломан;
+ КонецЕсли;
+
+КонецФункции
+
+Функция УровеньЛогаСостояния(Состояние) Экспорт
+
+ Если Состояние = Ошибка Или Состояние = Сломан Тогда
+ Уровень = УровниЛога.Ошибка;
+ ИначеЕсли Состояние = Пропущен Или Состояние = Прерван Тогда
+ Уровень = УровниЛога.Предупреждение;
+ Иначе
+ Уровень = УровниЛога.Информация;
+ КонецЕсли;
+
+ Возврат Уровень;
+
+КонецФункции
+
+Функция НаихудшееСостояние(Первое, Второе) Экспорт
+ Возврат СостояниеПриоритета(Макс(ПриоритетСостояния(Первое), ПриоритетСостояния(Второе)));
+КонецФункции
+
+Функция ПриоритетСостояния(Состояние)
+ Возврат ПриоритетыСостояний.Получить(Состояние).Получить();
+КонецФункции
+
+Функция СостояниеПриоритета(Приоритет)
+ Возврат СостоянияПриоритетов.Получить(Приоритет).Получить();
+КонецФункции
+
+_КодировкиUTF = Списки.ИзЭлементов(
+ КодировкаТекста.UTF8,
+ КодировкаТекста.UTF8NoBOM,
+ КодировкаТекста.UTF16
+);
+
+Успех = "Успех";
+Пропущен = "Пропущен";
+Прерван = "Прерван";
+Ошибка = "Ошибка";
+Сломан = "Сломан";
+
+ПриоритетыСостояний = Новый КартаСоответствие();
+ПриоритетыСостояний.Вставить(Успех, 0);
+ПриоритетыСостояний.Вставить(Пропущен, 1);
+ПриоритетыСостояний.Вставить(Прерван, 2);
+ПриоритетыСостояний.Вставить(Ошибка, 3);
+ПриоритетыСостояний.Вставить(Сломан, 4);
+
+СостоянияПриоритетов = Новый КартаСоответствие();
+СостоянияПриоритетов.Вставить(0, Успех);
+СостоянияПриоритетов.Вставить(1, Пропущен);
+СостоянияПриоритетов.Вставить(2, Прерван);
+СостоянияПриоритетов.Вставить(3, Ошибка);
+СостоянияПриоритетов.Вставить(4, Сломан);
diff --git "a/src/core/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\321\200\320\265\320\264\320\277\320\276\320\273\320\260\320\263\320\260\320\265\320\274.os" "b/src/core/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\321\200\320\265\320\264\320\277\320\276\320\273\320\260\320\263\320\260\320\265\320\274.os"
new file mode 100644
index 0000000..1c4764b
--- /dev/null
+++ "b/src/core/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\321\200\320\265\320\264\320\277\320\276\320\273\320\260\320\263\320\260\320\265\320\274.os"
@@ -0,0 +1,45 @@
+// Проверяет что переданное предположение истинно,
+// если это не так, прерывает выполнение теста с сообщением
+//
+// Параметры:
+// Предположение - Булево - Проверяемое предположение
+// Сообщение - Строка - Сообщение, с которым будет прерван тест
+//
+// Пример:
+// &Тест
+// Процедура Тест() Экспорт
+// Предполагаем.ЧтоИстинно(ПолучитьПеременнуюСреды("ENV") = "CI", "Выполняется только на CI");
+// КонецПроцедуры
+//
+Процедура ЧтоИстинно(Предположение, Сообщение) Экспорт
+
+ Если Предположение <> Истина Тогда
+ ПрерватьТест(Сообщение);
+ КонецЕсли;
+
+КонецПроцедуры
+
+// Проверяет что переданное предположение ложно,
+// если это не так, прерывает выполнение теста с сообщением
+//
+// Параметры:
+// Предположение - Булево - Проверяемое предположение
+// Сообщение - Строка - Сообщение, с которым будет прерван тест
+//
+// Пример:
+// &Тест
+// Процедура Тест() Экспорт
+// Предполагаем.ЧтоЛожно(ПолучитьПеременнуюСреды("ENV") = "PROD", "Только не на проде");
+// КонецПроцедуры
+//
+Процедура ЧтоЛожно(Предположение, Сообщение) Экспорт
+
+ Если Предположение <> Ложь Тогда
+ ПрерватьТест(Сообщение);
+ КонецЕсли;
+
+КонецПроцедуры
+
+Процедура ПрерватьТест(Сообщение)
+ ВызватьИсключение Новый ИнформацияОбОшибке(Сообщение, Новый ИсключениеТестПрерван);
+КонецПроцедуры
diff --git "a/src/shared/\320\234\320\276\320\264\321\203\320\273\320\270/\320\242\320\265\321\201\321\202\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.os" "b/src/shared/\320\234\320\276\320\264\321\203\320\273\320\270/\320\242\320\265\321\201\321\202\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.os"
index 61f2d7d..d95d77b 100644
--- "a/src/shared/\320\234\320\276\320\264\321\203\320\273\320\270/\320\242\320\265\321\201\321\202\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.os"
+++ "b/src/shared/\320\234\320\276\320\264\321\203\320\273\320\270/\320\242\320\265\321\201\321\202\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.os"
@@ -23,7 +23,6 @@
Функция КраткоеОписаниеОшибки(ИнформацияОбОшибке) Экспорт
// Уберём артефакты которые приезжают из asserts
-
ОписаниеОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке);
ОписаниеОшибки = СтрЗаменить(ОписаниеОшибки, "[Failed] ", "");
diff --git "a/tests/fixtures/\320\235\320\260\320\261\320\276\321\200\320\232\321\200\320\260\321\201\320\275\321\213\321\205\320\242\320\265\321\201\321\202\320\276\320\262.os" "b/tests/fixtures/\320\235\320\260\320\261\320\276\321\200\320\232\321\200\320\260\321\201\320\275\321\213\321\205\320\242\320\265\321\201\321\202\320\276\320\262.os"
new file mode 100644
index 0000000..4b3f0de
--- /dev/null
+++ "b/tests/fixtures/\320\235\320\260\320\261\320\276\321\200\320\232\321\200\320\260\321\201\320\275\321\213\321\205\320\242\320\265\321\201\321\202\320\276\320\262.os"
@@ -0,0 +1,17 @@
+#Использовать asserts
+
+&Тест
+Процедура СостояниеОшибка() Экспорт
+ Ожидаем.Что(Истина, "Ошибка утверждения")
+ .ЭтоЛожь();
+КонецПроцедуры
+
+&Тест
+Процедура СостояниеСломан() Экспорт
+ ВызватьИсключение "Сломано";
+КонецПроцедуры
+
+&ТестовыйНабор
+&Порядок(12)
+Процедура ПриСозданииОбъекта()
+КонецПроцедуры
diff --git "a/tests/fixtures/\320\235\320\260\320\261\320\276\321\200\320\237\320\260\320\264\320\260\321\216\321\211\320\270\320\271\320\222\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\265.os" "b/tests/fixtures/\320\235\320\260\320\261\320\276\321\200\320\237\320\260\320\264\320\260\321\216\321\211\320\270\320\271\320\222\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\265.os"
new file mode 100644
index 0000000..6dea01e
--- /dev/null
+++ "b/tests/fixtures/\320\235\320\260\320\261\320\276\321\200\320\237\320\260\320\264\320\260\321\216\321\211\320\270\320\271\320\222\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\265.os"
@@ -0,0 +1,17 @@
+&Тест
+Процедура ЯПроигнорирован1() Экспорт
+КонецПроцедуры
+
+&Тест
+Процедура ЯПроигнорирован2() Экспорт
+КонецПроцедуры
+
+&Тест
+Процедура ЯПроигнорирован3() Экспорт
+КонецПроцедуры
+
+&ТестовыйНабор
+&Порядок(11)
+Процедура ПриСозданииОбъекта()
+ ВызватьИсключение "Я упал в конструкторе";
+КонецПроцедуры
diff --git "a/tests/fixtures/\320\235\320\260\320\261\320\276\321\200\320\237\321\200\320\265\321\200\320\262\320\260\320\275\320\275\321\213\320\271.os" "b/tests/fixtures/\320\235\320\260\320\261\320\276\321\200\320\237\321\200\320\265\321\200\320\262\320\260\320\275\320\275\321\213\320\271.os"
new file mode 100644
index 0000000..f55ae61
--- /dev/null
+++ "b/tests/fixtures/\320\235\320\260\320\261\320\276\321\200\320\237\321\200\320\265\321\200\320\262\320\260\320\275\320\275\321\213\320\271.os"
@@ -0,0 +1,16 @@
+#Использовать ".."
+
+&ПередВсеми
+Процедура Прерваться() Экспорт
+ Предполагаем.ЧтоИстинно(Ложь, "Я прервался");
+КонецПроцедуры
+
+&Тест
+Процедура НеДолженВыполнятьВПрерванномНаборе() Экспорт
+ ВызватьИсключение "Я не должен был быть выполнен";
+КонецПроцедуры
+
+&ТестовыйНабор
+&Порядок(9)
+Процедура ПриСозданииОбъекта()
+КонецПроцедуры
diff --git "a/tests/fixtures/\320\235\320\260\320\261\320\276\321\200\320\241\320\222\321\213\320\272\320\273\321\216\321\207\320\265\320\275\320\275\321\213\320\274\320\270\320\242\320\265\321\201\321\202\320\260\320\274\320\270.os" "b/tests/fixtures/\320\235\320\260\320\261\320\276\321\200\320\241\320\222\321\213\320\272\320\273\321\216\321\207\320\265\320\275\320\275\321\213\320\274\320\270\320\242\320\265\321\201\321\202\320\260\320\274\320\270.os"
index 97e64dc..0375bf8 100644
--- "a/tests/fixtures/\320\235\320\260\320\261\320\276\321\200\320\241\320\222\321\213\320\272\320\273\321\216\321\207\320\265\320\275\320\275\321\213\320\274\320\270\320\242\320\265\321\201\321\202\320\260\320\274\320\270.os"
+++ "b/tests/fixtures/\320\235\320\260\320\261\320\276\321\200\320\241\320\222\321\213\320\272\320\273\321\216\321\207\320\265\320\275\320\275\321\213\320\274\320\270\320\242\320\265\321\201\321\202\320\260\320\274\320\270.os"
@@ -64,7 +64,7 @@
КонецПроцедуры
&Тест
-&ВыключенДляOneScript("~2.0")
+&ВыключенДляOneScript("~2.0.0-rc")
Процедура ВыключенДляOneScriptСтаршеДвойки() Экспорт
Ожидаем.Что(
@@ -120,7 +120,7 @@
КонецПроцедуры
&Тест
-&ВключенДляOneScript("<2")
+&ВключенДляOneScript("<2.0.0-rc")
Процедура ВключенДляOneScriptМладшеДвойки() Экспорт
ВызватьИсключение "Я не должен был выполнится никогда, т.к приложение не работает на версиях младше 2";
КонецПроцедуры
diff --git "a/tests/fixtures/\320\235\320\260\320\261\320\276\321\200\320\241\320\237\321\200\320\265\321\200\320\262\320\260\320\275\320\275\321\213\320\274\320\270\320\242\320\265\321\201\321\202\320\260\320\274\320\270.os" "b/tests/fixtures/\320\235\320\260\320\261\320\276\321\200\320\241\320\237\321\200\320\265\321\200\320\262\320\260\320\275\320\275\321\213\320\274\320\270\320\242\320\265\321\201\321\202\320\260\320\274\320\270.os"
new file mode 100644
index 0000000..b5feef0
--- /dev/null
+++ "b/tests/fixtures/\320\235\320\260\320\261\320\276\321\200\320\241\320\237\321\200\320\265\321\200\320\262\320\260\320\275\320\275\321\213\320\274\320\270\320\242\320\265\321\201\321\202\320\260\320\274\320\270.os"
@@ -0,0 +1,26 @@
+#Использовать ".."
+
+Перем Сч;
+
+&Тест
+Процедура ПрерванныйТест() Экспорт
+ Предполагаем.ЧтоИстинно(Ложь, "Я прервался");
+КонецПроцедуры
+
+&ПовторяемыйТест(4)
+Процедура ПрерванныйТестПовторяемый() Экспорт
+ Сч = Сч + 1;
+ Предполагаем.ЧтоИстинно(Сч <= 2, "Я прервался тоже по счётчику");
+КонецПроцедуры
+
+&ПараметризованныйТест
+&ИсточникJSON("[ {""Значение"": 1}, {""Значение"": 2}, {""Значение"": 3}, {""Значение"": 4} ]")
+Процедура ПрерванныйТестПараметризованный(Значение) Экспорт
+ Предполагаем.ЧтоИстинно(Значение <= 2, "Я прервался тоже по значению параметра");
+КонецПроцедуры
+
+&ТестовыйНабор(Характер = "Одиночка")
+&Порядок(10)
+Процедура ПриСозданииОбъекта()
+ Сч = 0;
+КонецПроцедуры
diff --git "a/tests/fixtures/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\270\320\267\320\276\320\262\320\260\320\275\320\275\321\213\320\271\320\242\320\265\321\201\321\202.os" "b/tests/fixtures/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\270\320\267\320\276\320\262\320\260\320\275\320\275\321\213\320\271\320\242\320\265\321\201\321\202.os"
index 238acdd..3eadaa6 100644
--- "a/tests/fixtures/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\270\320\267\320\276\320\262\320\260\320\275\320\275\321\213\320\271\320\242\320\265\321\201\321\202.os"
+++ "b/tests/fixtures/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\270\320\267\320\276\320\262\320\260\320\275\320\275\321\213\320\271\320\242\320\265\321\201\321\202.os"
@@ -55,12 +55,15 @@
КонецПроцедуры
&ПараметризованныйТест
-&ИсточникПеречисление("РезультатыВыполненияТестов")
+&ИсточникПеречисление("СостоянияВыполненияТестов")
Процедура ИсточникПеречислениеПользовательское(ЗначениеПеречисления) Экспорт
Значения = Списки.ИзЭлементов(
- РезультатыВыполненияТестов.Ошибка,
- РезультатыВыполненияТестов.Успех
+ СостоянияВыполненияТестов.Ошибка,
+ СостоянияВыполненияТестов.Успех,
+ СостоянияВыполненияТестов.Прерван,
+ СостоянияВыполненияТестов.Пропущен,
+ СостоянияВыполненияТестов.Сломан
);
Ожидаем.Что(Значения.Содержит(ЗначениеПеречисления)).ЭтоИстина();
@@ -86,7 +89,7 @@
Ожидаем.Что(ВспомогательныйМодуль.КоличествоВызововМетодов
.ПолучитьИлиУмолчание("ИсточникПеречислениеПользовательское", 0))
- .Равно(2);
+ .Равно(5);
КонецПроцедуры
diff --git "a/tests/\320\236\320\261\320\275\320\260\321\200\321\203\320\266\320\270\321\202\320\265\320\273\321\214.os" "b/tests/\320\236\320\261\320\275\320\260\321\200\321\203\320\266\320\270\321\202\320\265\320\273\321\214.os"
index 1fad14e..88cbf8b 100644
--- "a/tests/\320\236\320\261\320\275\320\260\321\200\321\203\320\266\320\270\321\202\320\265\320\273\321\214.os"
+++ "b/tests/\320\236\320\261\320\275\320\260\321\200\321\203\320\266\320\270\321\202\320\265\320\273\321\214.os"
@@ -16,7 +16,7 @@
// Тогда
- Ожидаем.Что(ТестПлан.Дети().Количество()).Равно(10);
+ Ожидаем.Что(ТестПлан.Дети().Количество()).Равно(14);
#Область НаборБезКонструктора
@@ -225,44 +225,22 @@
Ожидаем.Что(ТестПлан.Дети().Получить(ИндексНабора).Дети()).ИмеетДлину(3);
- ПроверитьТест(
- ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(0),
- ТипыОпределенийТестов.Тест,
- "ЯПроигнорирован1",
- "ЯПроигнорирован1",
- "НаборПадающий.ЯПроигнорирован1",
- ОбъединитьПути(".", "tests", "fixtures", "НаборПадающий.os"),
- 0,
- Списки.ИзЭлементов(),
- Списки.ИзЭлементов(),
- 0
- );
-
- ПроверитьТест(
- ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(1),
- ТипыОпределенийТестов.Тест,
- "ЯПроигнорирован2",
- "ЯПроигнорирован2",
- "НаборПадающий.ЯПроигнорирован2",
- ОбъединитьПути(".", "tests", "fixtures", "НаборПадающий.os"),
- 0,
- Списки.ИзЭлементов(),
- Списки.ИзЭлементов(),
- 0
- );
+ Для Сч = 1 По 3 Цикл
+
+ ПроверитьТест(
+ ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(Сч - 1),
+ ТипыОпределенийТестов.Тест,
+ СтрШаблон("ЯПроигнорирован%1", Сч),
+ СтрШаблон("ЯПроигнорирован%1", Сч),
+ СтрШаблон("НаборПадающий.ЯПроигнорирован%1", Сч),
+ ОбъединитьПути(".", "tests", "fixtures", "НаборПадающий.os"),
+ 0,
+ Списки.ИзЭлементов(),
+ Списки.ИзЭлементов(),
+ 0
+ );
- ПроверитьТест(
- ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(2),
- ТипыОпределенийТестов.Тест,
- "ЯПроигнорирован3",
- "ЯПроигнорирован3",
- "НаборПадающий.ЯПроигнорирован3",
- ОбъединитьПути(".", "tests", "fixtures", "НаборПадающий.os"),
- 0,
- Списки.ИзЭлементов(),
- Списки.ИзЭлементов(),
- 0
- );
+ КонецЦикла;
#КонецОбласти
@@ -497,44 +475,22 @@
Ожидаем.Что(ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(0).Дети()).ИмеетДлину(3);
- ПроверитьТест(
- ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(0).Дети().Получить(0),
- ТипыОпределенийТестов.Тест,
- "ИсточникЗначение",
- "[1, 2]",
- "ПараметризованныйТест.ИсточникЗначение.[1, 2]",
- ОбъединитьПути(".", "tests", "fixtures", "ПараметризованныйТест.os"),
- 0,
- Списки.ИзЭлементов(1 , 2),
- Списки.ИзЭлементов("Параметризованный"),
- 0
- );
+ Для Сч = 1 По 3 Цикл
+
+ ПроверитьТест(
+ ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(0).Дети().Получить(Сч - 1),
+ ТипыОпределенийТестов.Тест,
+ "ИсточникЗначение",
+ СтрШаблон("[%1, %2]", Сч * 2 - 1, Сч * 2),
+ СтрШаблон("ПараметризованныйТест.ИсточникЗначение.[%1, %2]", Сч * 2 - 1, Сч * 2),
+ ОбъединитьПути(".", "tests", "fixtures", "ПараметризованныйТест.os"),
+ 0,
+ Списки.ИзЭлементов(Сч * 2 - 1, Сч * 2),
+ Списки.ИзЭлементов("Параметризованный"),
+ 0
+ );
- ПроверитьТест(
- ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(0).Дети().Получить(1),
- ТипыОпределенийТестов.Тест,
- "ИсточникЗначение",
- "[3, 4]",
- "ПараметризованныйТест.ИсточникЗначение.[3, 4]",
- ОбъединитьПути(".", "tests", "fixtures", "ПараметризованныйТест.os"),
- 0,
- Списки.ИзЭлементов(3 , 4),
- Списки.ИзЭлементов("Параметризованный"),
- 0
- );
-
- ПроверитьТест(
- ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(0).Дети().Получить(2),
- ТипыОпределенийТестов.Тест,
- "ИсточникЗначение",
- "[5, 6]",
- "ПараметризованныйТест.ИсточникЗначение.[5, 6]",
- ОбъединитьПути(".", "tests", "fixtures", "ПараметризованныйТест.os"),
- 0,
- Списки.ИзЭлементов(5 , 6),
- Списки.ИзЭлементов("Параметризованный"),
- 0
- );
+ КонецЦикла;
#КонецОбласти
@@ -587,44 +543,22 @@
Ожидаем.Что(ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(2).Дети()).ИмеетДлину(3);
- ПроверитьТест(
- ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(2).Дети().Получить(0),
- ТипыОпределенийТестов.Тест,
- "ИсточникJSONЗначение",
- "[1, 2]",
- "ПараметризованныйТест.ИсточникJSONЗначение.[1, 2]",
- ОбъединитьПути(".", "tests", "fixtures", "ПараметризованныйТест.os"),
- 0,
- Списки.ИзЭлементов(1 , 2),
- Списки.ИзЭлементов("Параметризованный"),
- 0
- );
+ Для Сч = 1 По 3 Цикл
+
+ ПроверитьТест(
+ ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(2).Дети().Получить(Сч - 1),
+ ТипыОпределенийТестов.Тест,
+ "ИсточникJSONЗначение",
+ СтрШаблон("[%1, %2]", Сч * 2 - 1, Сч * 2),
+ СтрШаблон("ПараметризованныйТест.ИсточникJSONЗначение.[%1, %2]", Сч * 2 - 1, Сч * 2),
+ ОбъединитьПути(".", "tests", "fixtures", "ПараметризованныйТест.os"),
+ 0,
+ Списки.ИзЭлементов(Сч * 2 - 1, Сч * 2),
+ Списки.ИзЭлементов("Параметризованный"),
+ 0
+ );
- ПроверитьТест(
- ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(2).Дети().Получить(1),
- ТипыОпределенийТестов.Тест,
- "ИсточникJSONЗначение",
- "[3, 4]",
- "ПараметризованныйТест.ИсточникJSONЗначение.[3, 4]",
- ОбъединитьПути(".", "tests", "fixtures", "ПараметризованныйТест.os"),
- 0,
- Списки.ИзЭлементов(3, 4),
- Списки.ИзЭлементов("Параметризованный"),
- 0
- );
-
- ПроверитьТест(
- ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(2).Дети().Получить(2),
- ТипыОпределенийТестов.Тест,
- "ИсточникJSONЗначение",
- "[5, 6]",
- "ПараметризованныйТест.ИсточникJSONЗначение.[5, 6]",
- ОбъединитьПути(".", "tests", "fixtures", "ПараметризованныйТест.os"),
- 0,
- Списки.ИзЭлементов(5, 6),
- Списки.ИзЭлементов("Параметризованный"),
- 0
- );
+ КонецЦикла;
#КонецОбласти
@@ -645,44 +579,22 @@
Ожидаем.Что(ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(3).Дети()).ИмеетДлину(3);
- ПроверитьТест(
- ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(3).Дети().Получить(0),
- ТипыОпределенийТестов.Тест,
- "ИсточникJSONФайл",
- "[1, 2]",
- "ПараметризованныйТест.ИсточникJSONФайл.[1, 2]",
- ОбъединитьПути(".", "tests", "fixtures", "ПараметризованныйТест.os"),
- 0,
- Списки.ИзЭлементов(1 , 2),
- Списки.ИзЭлементов("Параметризованный"),
- 0
- );
+ Для Сч = 1 По 3 Цикл
+
+ ПроверитьТест(
+ ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(3).Дети().Получить(Сч - 1),
+ ТипыОпределенийТестов.Тест,
+ "ИсточникJSONФайл",
+ СтрШаблон("[%1, %2]", Сч * 2 - 1, Сч * 2),
+ СтрШаблон("ПараметризованныйТест.ИсточникJSONФайл.[%1, %2]", Сч * 2 - 1, Сч * 2),
+ ОбъединитьПути(".", "tests", "fixtures", "ПараметризованныйТест.os"),
+ 0,
+ Списки.ИзЭлементов(Сч * 2 - 1, Сч * 2),
+ Списки.ИзЭлементов("Параметризованный"),
+ 0
+ );
- ПроверитьТест(
- ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(3).Дети().Получить(1),
- ТипыОпределенийТестов.Тест,
- "ИсточникJSONФайл",
- "[3, 4]",
- "ПараметризованныйТест.ИсточникJSONФайл.[3, 4]",
- ОбъединитьПути(".", "tests", "fixtures", "ПараметризованныйТест.os"),
- 0,
- Списки.ИзЭлементов(3, 4),
- Списки.ИзЭлементов("Параметризованный"),
- 0
- );
-
- ПроверитьТест(
- ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(3).Дети().Получить(2),
- ТипыОпределенийТестов.Тест,
- "ИсточникJSONФайл",
- "[5, 6]",
- "ПараметризованныйТест.ИсточникJSONФайл.[5, 6]",
- ОбъединитьПути(".", "tests", "fixtures", "ПараметризованныйТест.os"),
- 0,
- Списки.ИзЭлементов(5, 6),
- Списки.ИзЭлементов("Параметризованный"),
- 0
- );
+ КонецЦикла;
#КонецОбласти
@@ -703,83 +615,26 @@
Ожидаем.Что(ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(4).Дети()).ИмеетДлину(6);
- ПроверитьТест(
- ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(4).Дети().Получить(0),
- ТипыОпределенийТестов.Тест,
- "ИсточникПеречислениеСистемное",
- СтрШаблон("[%1]", СтатусСообщения.БезСтатуса),
- "ПараметризованныйТест.ИсточникПеречислениеСистемное." + СтрШаблон("[%1]", СтатусСообщения.БезСтатуса),
- ОбъединитьПути(".", "tests", "fixtures", "ПараметризованныйТест.os"),
- 0,
- Списки.ИзЭлементов(СтатусСообщения.БезСтатуса),
- Списки.ИзЭлементов("Параметризованный"),
- 0
- );
+ Сч = 0;
- ПроверитьТест(
- ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(4).Дети().Получить(1),
- ТипыОпределенийТестов.Тест,
- "ИсточникПеречислениеСистемное",
- СтрШаблон("[%1]", СтатусСообщения.Важное),
- "ПараметризованныйТест.ИсточникПеречислениеСистемное." + СтрШаблон("[%1]", СтатусСообщения.Важное),
- ОбъединитьПути(".", "tests", "fixtures", "ПараметризованныйТест.os"),
- 0,
- Списки.ИзЭлементов(СтатусСообщения.Важное),
- Списки.ИзЭлементов("Параметризованный"),
- 0
- );
+ Для Каждого Статус Из СтатусСообщения Цикл
- ПроверитьТест(
- ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(4).Дети().Получить(2),
- ТипыОпределенийТестов.Тест,
- "ИсточникПеречислениеСистемное",
- СтрШаблон("[%1]", СтатусСообщения.Внимание),
- "ПараметризованныйТест.ИсточникПеречислениеСистемное." + СтрШаблон("[%1]", СтатусСообщения.Внимание),
- ОбъединитьПути(".", "tests", "fixtures", "ПараметризованныйТест.os"),
- 0,
- Списки.ИзЭлементов(СтатусСообщения.Внимание),
- Списки.ИзЭлементов("Параметризованный"),
- 0
- );
+ ПроверитьТест(
+ ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(4).Дети().Получить(Сч),
+ ТипыОпределенийТестов.Тест,
+ "ИсточникПеречислениеСистемное",
+ СтрШаблон("[%1]", Статус),
+ "ПараметризованныйТест.ИсточникПеречислениеСистемное." + СтрШаблон("[%1]", Статус),
+ ОбъединитьПути(".", "tests", "fixtures", "ПараметризованныйТест.os"),
+ 0,
+ Списки.ИзЭлементов(Статус),
+ Списки.ИзЭлементов("Параметризованный"),
+ 0
+ );
- ПроверитьТест(
- ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(4).Дети().Получить(3),
- ТипыОпределенийТестов.Тест,
- "ИсточникПеречислениеСистемное",
- СтрШаблон("[%1]", СтатусСообщения.Информация),
- "ПараметризованныйТест.ИсточникПеречислениеСистемное." + СтрШаблон("[%1]", СтатусСообщения.Информация),
- ОбъединитьПути(".", "tests", "fixtures", "ПараметризованныйТест.os"),
- 0,
- Списки.ИзЭлементов(СтатусСообщения.Информация),
- Списки.ИзЭлементов("Параметризованный"),
- 0
- );
+ Сч = Сч + 1;
- ПроверитьТест(
- ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(4).Дети().Получить(4),
- ТипыОпределенийТестов.Тест,
- "ИсточникПеречислениеСистемное",
- СтрШаблон("[%1]", СтатусСообщения.Обычное),
- "ПараметризованныйТест.ИсточникПеречислениеСистемное." + СтрШаблон("[%1]", СтатусСообщения.Обычное),
- ОбъединитьПути(".", "tests", "fixtures", "ПараметризованныйТест.os"),
- 0,
- Списки.ИзЭлементов(СтатусСообщения.Обычное),
- Списки.ИзЭлементов("Параметризованный"),
- 0
- );
-
- ПроверитьТест(
- ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(4).Дети().Получить(5),
- ТипыОпределенийТестов.Тест,
- "ИсточникПеречислениеСистемное",
- СтрШаблон("[%1]", СтатусСообщения.ОченьВажное),
- "ПараметризованныйТест.ИсточникПеречислениеСистемное." + СтрШаблон("[%1]", СтатусСообщения.ОченьВажное),
- ОбъединитьПути(".", "tests", "fixtures", "ПараметризованныйТест.os"),
- 0,
- Списки.ИзЭлементов(СтатусСообщения.ОченьВажное),
- Списки.ИзЭлементов("Параметризованный"),
- 0
- );
+ КонецЦикла;
#КонецОбласти
@@ -798,33 +653,30 @@
0
);
- Ожидаем.Что(ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(5).Дети()).ИмеетДлину(2);
+ Ожидаем.Что(ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(5).Дети()).ИмеетДлину(5);
- ПроверитьТест(
- ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(5).Дети().Получить(0),
- ТипыОпределенийТестов.Тест,
- "ИсточникПеречислениеПользовательское",
- "[Успех]",
- "ПараметризованныйТест.ИсточникПеречислениеПользовательское.[Успех]",
- ОбъединитьПути(".", "tests", "fixtures", "ПараметризованныйТест.os"),
- 0,
- Списки.ИзЭлементов(РезультатыВыполненияТестов.Успех),
- Списки.ИзЭлементов("Параметризованный"),
- 0
- );
+ Сч = 0;
- ПроверитьТест(
- ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(5).Дети().Получить(1),
- ТипыОпределенийТестов.Тест,
- "ИсточникПеречислениеПользовательское",
- "[Ошибка]",
- "ПараметризованныйТест.ИсточникПеречислениеПользовательское.[Ошибка]",
- ОбъединитьПути(".", "tests", "fixtures", "ПараметризованныйТест.os"),
- 0,
- Списки.ИзЭлементов(РезультатыВыполненияТестов.Ошибка),
- Списки.ИзЭлементов("Параметризованный"),
- 0
- );
+ Для каждого Свойство Из Рефлектор.ПолучитьТаблицуСвойств(СостоянияВыполненияТестов) Цикл
+
+ Значение = Рефлектор.ПолучитьСвойство(СостоянияВыполненияТестов, Свойство.Имя);
+
+ ПроверитьТест(
+ ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(5).Дети().Получить(Сч),
+ ТипыОпределенийТестов.Тест,
+ "ИсточникПеречислениеПользовательское",
+ СтрШаблон("[%1]", Значение),
+ СтрШаблон("ПараметризованныйТест.ИсточникПеречислениеПользовательское.[%1]", Значение),
+ ОбъединитьПути(".", "tests", "fixtures", "ПараметризованныйТест.os"),
+ 0,
+ Списки.ИзЭлементов(Значение),
+ Списки.ИзЭлементов("Параметризованный"),
+ 0
+ );
+
+ Сч = Сч + 1;
+
+ КонецЦикла;
#КонецОбласти
@@ -845,44 +697,22 @@
Ожидаем.Что(ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(6).Дети()).ИмеетДлину(3);
- ПроверитьТест(
- ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(6).Дети().Получить(0),
- ТипыОпределенийТестов.Тест,
- "ИсточникВыражение",
- "[1, 2]",
- "ПараметризованныйТест.ИсточникВыражение.[1, 2]",
- ОбъединитьПути(".", "tests", "fixtures", "ПараметризованныйТест.os"),
- 0,
- Списки.ИзЭлементов(1 , 2),
- Списки.ИзЭлементов("Параметризованный"),
- 0
- );
-
- ПроверитьТест(
- ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(6).Дети().Получить(1),
- ТипыОпределенийТестов.Тест,
- "ИсточникВыражение",
- "[3, 4]",
- "ПараметризованныйТест.ИсточникВыражение.[3, 4]",
- ОбъединитьПути(".", "tests", "fixtures", "ПараметризованныйТест.os"),
- 0,
- Списки.ИзЭлементов(3, 4),
- Списки.ИзЭлементов("Параметризованный"),
- 0
- );
+ Для Сч = 1 По 3 Цикл
+
+ ПроверитьТест(
+ ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(6).Дети().Получить(Сч - 1),
+ ТипыОпределенийТестов.Тест,
+ "ИсточникВыражение",
+ СтрШаблон("[%1, %2]", Сч * 2 - 1, Сч * 2),
+ СтрШаблон("ПараметризованныйТест.ИсточникВыражение.[%1, %2]", Сч * 2 - 1, Сч * 2),
+ ОбъединитьПути(".", "tests", "fixtures", "ПараметризованныйТест.os"),
+ 0,
+ Списки.ИзЭлементов(Сч * 2 - 1, Сч * 2),
+ Списки.ИзЭлементов("Параметризованный"),
+ 0
+ );
- ПроверитьТест(
- ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(6).Дети().Получить(2),
- ТипыОпределенийТестов.Тест,
- "ИсточникВыражение",
- "[5, 6]",
- "ПараметризованныйТест.ИсточникВыражение.[5, 6]",
- ОбъединитьПути(".", "tests", "fixtures", "ПараметризованныйТест.os"),
- 0,
- Списки.ИзЭлементов(5, 6),
- Списки.ИзЭлементов("Параметризованный"),
- 0
- );
+ КонецЦикла;
#КонецОбласти
@@ -925,44 +755,22 @@
Ожидаем.Что(ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(0).Дети()).ИмеетДлину(3);
- ПроверитьТест(
- ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(0).Дети().Получить(0),
- ТипыОпределенийТестов.Тест,
- "ТриРаза",
- "Повторение 1 из 3",
- "ПовторяемыйТест.ТриРаза.Повторение 1 из 3",
- ОбъединитьПути(".", "tests", "fixtures", "ПовторяемыйТест.os"),
- 0,
- Списки.ИзЭлементов(),
- Списки.ИзЭлементов("Повторяемый"),
- 0
- );
-
- ПроверитьТест(
- ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(0).Дети().Получить(1),
- ТипыОпределенийТестов.Тест,
- "ТриРаза",
- "Повторение 2 из 3",
- "ПовторяемыйТест.ТриРаза.Повторение 2 из 3",
- ОбъединитьПути(".", "tests", "fixtures", "ПовторяемыйТест.os"),
- 0,
- Списки.ИзЭлементов(),
- Списки.ИзЭлементов("Повторяемый"),
- 0
- );
+ Для Сч = 1 По 3 Цикл
+
+ ПроверитьТест(
+ ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(0).Дети().Получить(Сч - 1),
+ ТипыОпределенийТестов.Тест,
+ "ТриРаза",
+ СтрШаблон("Повторение %1 из 3", Сч),
+ СтрШаблон("ПовторяемыйТест.ТриРаза.Повторение %1 из 3", Сч),
+ ОбъединитьПути(".", "tests", "fixtures", "ПовторяемыйТест.os"),
+ 0,
+ Списки.ИзЭлементов(),
+ Списки.ИзЭлементов("Повторяемый"),
+ 0
+ );
- ПроверитьТест(
- ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(0).Дети().Получить(2),
- ТипыОпределенийТестов.Тест,
- "ТриРаза",
- "Повторение 3 из 3",
- "ПовторяемыйТест.ТриРаза.Повторение 3 из 3",
- ОбъединитьПути(".", "tests", "fixtures", "ПовторяемыйТест.os"),
- 0,
- Списки.ИзЭлементов(),
- Списки.ИзЭлементов("Повторяемый"),
- 0
- );
+ КонецЦикла;
#КонецОбласти
@@ -983,112 +791,292 @@
Ожидаем.Что(ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(1).Дети()).ИмеетДлину(3);
+ Для Сч = 1 По 3 Цикл
+
+ ПроверитьТест(
+ ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(1).Дети().Получить(Сч - 1),
+ ТипыОпределенийТестов.Тест,
+ "ТриРазаИменной",
+ СтрШаблон("ТриРазаИменной №%1", Сч),
+ СтрШаблон("ПовторяемыйТест.ТриРазаИменной.ТриРазаИменной №%1", Сч),
+ ОбъединитьПути(".", "tests", "fixtures", "ПовторяемыйТест.os"),
+ 0,
+ Списки.ИзЭлементов(),
+ Списки.ИзЭлементов("Повторяемый"),
+ 0
+ );
+
+ КонецЦикла;
+
+#КонецОбласти
+
+#Область ТриРазаИменнойИменованный
+
ПроверитьТест(
- ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(1).Дети().Получить(0),
- ТипыОпределенийТестов.Тест,
- "ТриРазаИменной",
- "ТриРазаИменной №1",
- "ПовторяемыйТест.ТриРазаИменной.ТриРазаИменной №1",
+ ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(2),
+ ТипыОпределенийТестов.Контейнер,
+ "ТриРазаИменнойИменованный",
+ "Я именованный",
+ "ПовторяемыйТест.Я именованный",
ОбъединитьПути(".", "tests", "fixtures", "ПовторяемыйТест.os"),
0,
Списки.ИзЭлементов(),
- Списки.ИзЭлементов("Повторяемый"),
+ Списки.ИзЭлементов("Повторяемый", "ОтображаемоеИмя"),
0
);
+ Ожидаем.Что(ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(2).Дети()).ИмеетДлину(3);
+
+ Для Сч = 1 По 3 Цикл
+
+ ПроверитьТест(
+ ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(2).Дети().Получить(Сч - 1),
+ ТипыОпределенийТестов.Тест,
+ "ТриРазаИменнойИменованный",
+ СтрШаблон("Я именованный №%1", Сч),
+ СтрШаблон("ПовторяемыйТест.Я именованный.Я именованный №%1", Сч),
+ ОбъединитьПути(".", "tests", "fixtures", "ПовторяемыйТест.os"),
+ 0,
+ Списки.ИзЭлементов(),
+ Списки.ИзЭлементов("Повторяемый", "ОтображаемоеИмя"),
+ 0
+ );
+
+ КонецЦикла;
+
+#КонецОбласти
+
+#Область Тест
+
+ ИндексНабора = 9;
+
+ ПроверитьТестНабор(
+ ТестПлан.Дети().Получить(ИндексНабора),
+ "Тест",
+ Списки.ИзЭлементов(),
+ 0,
+ 0,
+ Карты.ИзЭлементов(
+ "ПередВсеми", Списки.ИзЭлементов(),
+ "ПередКаждым", Списки.ИзЭлементов(),
+ "ПослеВсех", Списки.ИзЭлементов(),
+ "ПослеКаждого", Списки.ИзЭлементов()
+ )
+ );
+
+ Ожидаем.Что(ТестПлан.Дети().Получить(ИндексНабора).Дети()).ИмеетДлину(2);
+
ПроверитьТест(
- ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(1).Дети().Получить(1),
+ ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(0),
ТипыОпределенийТестов.Тест,
- "ТриРазаИменной",
- "ТриРазаИменной №2",
- "ПовторяемыйТест.ТриРазаИменной.ТриРазаИменной №2",
- ОбъединитьПути(".", "tests", "fixtures", "ПовторяемыйТест.os"),
+ "Тест1",
+ "Тест1",
+ "Тест.Тест1",
+ ОбъединитьПути(".", "tests", "fixtures", "Тест.os"),
0,
Списки.ИзЭлементов(),
- Списки.ИзЭлементов("Повторяемый"),
+ Списки.ИзЭлементов(),
0
);
ПроверитьТест(
- ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(1).Дети().Получить(2),
+ ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(1),
ТипыОпределенийТестов.Тест,
- "ТриРазаИменной",
- "ТриРазаИменной №3",
- "ПовторяемыйТест.ТриРазаИменной.ТриРазаИменной №3",
- ОбъединитьПути(".", "tests", "fixtures", "ПовторяемыйТест.os"),
+ "Тест2",
+ "Я тест 2",
+ "Тест.Я тест 2",
+ ОбъединитьПути(".", "tests", "fixtures", "Тест.os"),
0,
Списки.ИзЭлементов(),
- Списки.ИзЭлементов("Повторяемый"),
+ Списки.ИзЭлементов(),
0
);
#КонецОбласти
-#Область ТриРазаИменнойИменованный
+#Область НаборПрерванный
+
+ ИндексНабора = 10;
+
+ ПроверитьТестНабор(
+ ТестПлан.Дети().Получить(ИндексНабора),
+ "НаборПрерванный",
+ Списки.ИзЭлементов(),
+ 0,
+ 0,
+ Карты.ИзЭлементов(
+ "ПередВсеми", Списки.ИзЭлементов("Прерваться"),
+ "ПередКаждым", Списки.ИзЭлементов(),
+ "ПослеВсех", Списки.ИзЭлементов(),
+ "ПослеКаждого", Списки.ИзЭлементов()
+ )
+ );
+
+ Ожидаем.Что(ТестПлан.Дети().Получить(ИндексНабора).Дети()).ИмеетДлину(1);
ПроверитьТест(
- ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(2),
- ТипыОпределенийТестов.Контейнер,
- "ТриРазаИменнойИменованный",
- "Я именованный",
- "ПовторяемыйТест.Я именованный",
- ОбъединитьПути(".", "tests", "fixtures", "ПовторяемыйТест.os"),
+ ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(0),
+ ТипыОпределенийТестов.Тест,
+ "НеДолженВыполнятьВПрерванномНаборе",
+ "НеДолженВыполнятьВПрерванномНаборе",
+ "НаборПрерванный.НеДолженВыполнятьВПрерванномНаборе",
+ ОбъединитьПути(".", "tests", "fixtures", "НаборПрерванный.os"),
0,
Списки.ИзЭлементов(),
- Списки.ИзЭлементов("Повторяемый", "ОтображаемоеИмя"),
+ Списки.ИзЭлементов(),
0
);
- Ожидаем.Что(ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(2).Дети()).ИмеетДлину(3);
+#КонецОбласти
+
+#Область НаборСПрерваннымиТестами
+
+ ИндексНабора = 11;
+
+ ПроверитьТестНабор(
+ ТестПлан.Дети().Получить(ИндексНабора),
+ "НаборСПрерваннымиТестами",
+ Списки.ИзЭлементов(),
+ 0,
+ 0,
+ Карты.ИзЭлементов(
+ "ПередВсеми", Списки.ИзЭлементов(),
+ "ПередКаждым", Списки.ИзЭлементов(),
+ "ПослеВсех", Списки.ИзЭлементов(),
+ "ПослеКаждого", Списки.ИзЭлементов()
+ ),
+ Истина
+ );
+
+ Ожидаем.Что(ТестПлан.Дети().Получить(ИндексНабора).Дети()).ИмеетДлину(3);
ПроверитьТест(
- ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(2).Дети().Получить(0),
+ ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(0),
ТипыОпределенийТестов.Тест,
- "ТриРазаИменнойИменованный",
- "Я именованный №1",
- "ПовторяемыйТест.Я именованный.Я именованный №1",
- ОбъединитьПути(".", "tests", "fixtures", "ПовторяемыйТест.os"),
+ "ПрерванныйТест",
+ "ПрерванныйТест",
+ "НаборСПрерваннымиТестами.ПрерванныйТест",
+ ОбъединитьПути(".", "tests", "fixtures", "НаборСПрерваннымиТестами.os"),
0,
Списки.ИзЭлементов(),
- Списки.ИзЭлементов("Повторяемый", "ОтображаемоеИмя"),
+ Списки.ИзЭлементов(),
0
);
ПроверитьТест(
- ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(2).Дети().Получить(1),
- ТипыОпределенийТестов.Тест,
- "ТриРазаИменнойИменованный",
- "Я именованный №2",
- "ПовторяемыйТест.Я именованный.Я именованный №2",
- ОбъединитьПути(".", "tests", "fixtures", "ПовторяемыйТест.os"),
+ ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(1),
+ ТипыОпределенийТестов.Контейнер,
+ "ПрерванныйТестПовторяемый",
+ "ПрерванныйТестПовторяемый",
+ "НаборСПрерваннымиТестами.ПрерванныйТестПовторяемый",
+ ОбъединитьПути(".", "tests", "fixtures", "НаборСПрерваннымиТестами.os"),
0,
Списки.ИзЭлементов(),
- Списки.ИзЭлементов("Повторяемый", "ОтображаемоеИмя"),
+ Списки.ИзЭлементов(),
0
);
+ Ожидаем.Что(ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(1).Дети()).ИмеетДлину(4);
+
+ Для Сч = 1 По 4 Цикл
+
+ ПроверитьТест(
+ ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(1).Дети().Получить(Сч - 1),
+ ТипыОпределенийТестов.Тест,
+ "ПрерванныйТестПовторяемый",
+ СтрШаблон("Повторение %1 из 4", Сч),
+ СтрШаблон("НаборСПрерваннымиТестами.ПрерванныйТестПовторяемый.Повторение %1 из 4", Сч),
+ ОбъединитьПути(".", "tests", "fixtures", "НаборСПрерваннымиТестами.os"),
+ 0,
+ Списки.ИзЭлементов(),
+ Списки.ИзЭлементов(),
+ 0
+ );
+
+ КонецЦикла;
+
ПроверитьТест(
- ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(2).Дети().Получить(2),
- ТипыОпределенийТестов.Тест,
- "ТриРазаИменнойИменованный",
- "Я именованный №3",
- "ПовторяемыйТест.Я именованный.Я именованный №3",
- ОбъединитьПути(".", "tests", "fixtures", "ПовторяемыйТест.os"),
+ ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(2),
+ ТипыОпределенийТестов.Контейнер,
+ "ПрерванныйТестПараметризованный",
+ "ПрерванныйТестПараметризованный",
+ "НаборСПрерваннымиТестами.ПрерванныйТестПараметризованный",
+ ОбъединитьПути(".", "tests", "fixtures", "НаборСПрерваннымиТестами.os"),
0,
Списки.ИзЭлементов(),
- Списки.ИзЭлементов("Повторяемый", "ОтображаемоеИмя"),
+ Списки.ИзЭлементов(),
0
);
+ Ожидаем.Что(ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(2).Дети()).ИмеетДлину(4);
+
+ Для Сч = 1 По 4 Цикл
+
+ ПроверитьТест(
+ ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(2).Дети().Получить(Сч - 1),
+ ТипыОпределенийТестов.Тест,
+ "ПрерванныйТестПараметризованный",
+ СтрШаблон("[%1]", Сч),
+ СтрШаблон("НаборСПрерваннымиТестами.ПрерванныйТестПараметризованный.[%1]", Сч),
+ ОбъединитьПути(".", "tests", "fixtures", "НаборСПрерваннымиТестами.os"),
+ 0,
+ Списки.ИзЭлементов(Сч),
+ Списки.ИзЭлементов(),
+ 0
+ );
+
+ КонецЦикла;
+
#КонецОбласти
-#Область Тест
+#Область НаборПадающийВКонструкторе
- ИндексНабора = 9;
+ ИндексНабора = 12;
ПроверитьТестНабор(
ТестПлан.Дети().Получить(ИндексНабора),
- "Тест",
+ "НаборПадающийВКонструкторе",
+ Списки.ИзЭлементов(),
+ 0,
+ 0,
+ Карты.ИзЭлементов(
+ "ПередВсеми", Списки.ИзЭлементов(),
+ "ПередКаждым", Списки.ИзЭлементов(),
+ "ПослеВсех", Списки.ИзЭлементов(),
+ "ПослеКаждого", Списки.ИзЭлементов()
+ ),
+ Истина,
+ Ложь
+ );
+
+ Ожидаем.Что(ТестПлан.Дети().Получить(ИндексНабора).Дети()).ИмеетДлину(3);
+
+ Для Сч = 1 По 3 Цикл
+
+ ПроверитьТест(
+ ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(Сч - 1),
+ ТипыОпределенийТестов.Тест,
+ СтрШаблон("ЯПроигнорирован%1", Сч),
+ СтрШаблон("ЯПроигнорирован%1", Сч),
+ СтрШаблон("НаборПадающийВКонструкторе.ЯПроигнорирован%1", Сч),
+ ОбъединитьПути(".", "tests", "fixtures", "НаборПадающийВКонструкторе.os"),
+ 0,
+ Списки.ИзЭлементов(),
+ Списки.ИзЭлементов(),
+ 0
+ );
+
+ КонецЦикла;
+
+#КонецОбласти
+
+#Область НаборКрасныхТестов
+
+ ИндексНабора = 13;
+
+ ПроверитьТестНабор(
+ ТестПлан.Дети().Получить(ИндексНабора),
+ "НаборКрасныхТестов",
Списки.ИзЭлементов(),
0,
0,
@@ -1105,10 +1093,10 @@
ПроверитьТест(
ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(0),
ТипыОпределенийТестов.Тест,
- "Тест1",
- "Тест1",
- "Тест.Тест1",
- ОбъединитьПути(".", "tests", "fixtures", "Тест.os"),
+ "СостояниеОшибка",
+ "СостояниеОшибка",
+ "НаборКрасныхТестов.СостояниеОшибка",
+ ОбъединитьПути(".", "tests", "fixtures", "НаборКрасныхТестов.os"),
0,
Списки.ИзЭлементов(),
Списки.ИзЭлементов(),
@@ -1118,10 +1106,10 @@
ПроверитьТест(
ТестПлан.Дети().Получить(ИндексНабора).Дети().Получить(1),
ТипыОпределенийТестов.Тест,
- "Тест2",
- "Я тест 2",
- "Тест.Я тест 2",
- ОбъединитьПути(".", "tests", "fixtures", "Тест.os"),
+ "СостояниеСломан",
+ "СостояниеСломан",
+ "НаборКрасныхТестов.СостояниеСломан",
+ ОбъединитьПути(".", "tests", "fixtures", "НаборКрасныхТестов.os"),
0,
Списки.ИзЭлементов(),
Списки.ИзЭлементов(),
@@ -1134,7 +1122,8 @@
КонецПроцедуры
-Процедура ПроверитьТестНабор(ТестНабор, Имя, Теги, Таймаут, Условия, ЖизненныйЦикл, ЭтоОдиночка = Ложь)
+Процедура ПроверитьТестНабор(ТестНабор, Имя, Теги, Таймаут, Условия, ЖизненныйЦикл,
+ ЭтоОдиночка = Ложь, ПроверятьТестНабор = Истина)
Путь = ОбъединитьПути(".", "tests", "fixtures", Имя + ".os");
@@ -1144,7 +1133,12 @@
Ожидаем.Что(ТестНабор.ПолноеИмя()).Равно(Имя);
Ожидаем.Что(ТестНабор.Путь()).Равно(Путь);
Ожидаем.Что(Строка(ТестНабор)).Равно(Имя + " (" + Путь + ")");
- Ожидаем.Что(ТестНабор.ТестНабор()).ИмеетТип("oneunit_testcase_" + Имя);
+
+ Если ПроверятьТестНабор Тогда
+ Ожидаем.Что(ТестНабор.ТестНабор()).ИмеетТип("oneunit_testcase_" + Имя);
+ Иначе
+ Ожидаем.Что(ТестНабор.ТестНабор()).ЭтоНеопределено();
+ КонецЕсли;
Если ЭтоОдиночка Тогда
Ожидаем.Что(ТестНабор.ТестНабор()).Равно(ТестНабор.ТестНабор());
diff --git "a/tests/\320\237\321\200\320\265\320\264\320\277\320\276\320\273\320\276\320\266\320\265\320\275\320\270\321\217.os" "b/tests/\320\237\321\200\320\265\320\264\320\277\320\276\320\273\320\276\320\266\320\265\320\275\320\270\321\217.os"
new file mode 100644
index 0000000..ac3589a
--- /dev/null
+++ "b/tests/\320\237\321\200\320\265\320\264\320\277\320\276\320\273\320\276\320\266\320\265\320\275\320\270\321\217.os"
@@ -0,0 +1,66 @@
+#Использовать ".."
+
+&ПараметризованныйТест
+&ИсточникЗначение(Истина)
+&ИсточникЗначение(Ложь)
+Процедура ЧтоИстинно(Значение) Экспорт
+
+ // Когда
+
+ Попытка
+ Предполагаем.ЧтоИстинно(Значение, "ЯИсключение");
+ Исключение
+ ИнформацияОбОшибке = ИнформацияОбОшибке();
+ КонецПопытки;
+
+ // Тогда
+
+ Если Значение Тогда
+
+ Ожидаем.Что(ИнформацияОбОшибке)
+ .ЭтоНеопределено();
+
+ Иначе
+ ПроверитьИсключение(ИнформацияОбОшибке);
+ КонецЕсли;
+
+КонецПроцедуры
+
+&ПараметризованныйТест
+&ИсточникЗначение(Истина)
+&ИсточникЗначение(Ложь)
+Процедура ЧтоЛожно(Значение) Экспорт
+
+ // Когда
+
+ Попытка
+ Предполагаем.ЧтоЛожно(Не Значение, "ЯИсключение");
+ Исключение
+ ИнформацияОбОшибке = ИнформацияОбОшибке();
+ КонецПопытки;
+
+ // Тогда
+
+ Если Значение Тогда
+
+ Ожидаем.Что(ИнформацияОбОшибке)
+ .ЭтоНеопределено();
+
+ Иначе
+ ПроверитьИсключение(ИнформацияОбОшибке);
+ КонецЕсли;
+
+КонецПроцедуры
+
+Процедура ПроверитьИсключение(ИнформацияОбОшибке)
+
+ Ожидаем.Что(ИнформацияОбОшибке)
+ .ИмеетТип(Тип("ИнформацияОбОшибке"));
+
+ Ожидаем.Что(ИнформацияОбОшибке.Описание)
+ .Равно("ЯИсключение");
+
+ Ожидаем.Что(ИнформацияОбОшибке.Параметры)
+ .ИмеетТип(Тип("ИсключениеТестПрерван"));
+
+КонецПроцедуры