diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 000000000..8cb363c3e --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,13 @@ + + + +## Описание изменний + + + +---- + +- [ ] Добавлены тесты +- [ ] Изменения отражены в документации (при необходимости) + +Close #<Укажите номер issue для автоматического закрытия после принятия реквеста> diff --git a/documentation/blog/2024/05/07-engine-release.md b/documentation/blog/2024/05/07-engine-release.md new file mode 100644 index 000000000..cd3d1f632 --- /dev/null +++ b/documentation/blog/2024/05/07-engine-release.md @@ -0,0 +1,34 @@ +--- +title: YaxUnit. Версия 24.04 +authors: alkoleft +tags: [releases, yaxunit] +--- + +[Release 24.04](https://github.com/bia-technologies/yaxunit/releases/tag/24.04) + +## Новое в версии + +### Тестовые данные + +* [NEW] Метод `УстановитьСсылкуНового` в конструкторе объектов [#310](https://github.com/bia-technologies/yaxunit/issues/310), спасибо [@alexandr-yang](https://github.com/alexandr-yang) +* Удаление тестовых данных без учета прав [#309](https://github.com/bia-technologies/yaxunit/issues/309), спасибо [@goodwinvu](https://github.com/goodwinvu) + +### Зависимости + +* [NEW] Зависимости тестов [#314](https://github.com/bia-technologies/yaxunit/issues/314) +* [NEW] Добавить возможность указывать рабочий каталог в параметрах запуска [#313](https://github.com/bia-technologies/yaxunit/issues/313) +* [NEW] Зависимости тестов. Фабрика XDTO [#322](https://github.com/bia-technologies/yaxunit/issues/322) + +Подробнее о зависимостях вы можете узнать из [документации](/docs/features/dependencies) + +### Прочее + +* Рефакторинг механизма событий [#315](https://github.com/bia-technologies/yaxunit/issues/315) + Добавлена возможность создавать обработчики событий за пределами расширения движка, подробнее в [документации](docs/features/events) +* Добавлен шаблон PR + +## Исправленные ошибки + +* [Bug]: Не работает формат выбода ошибки HTML на Mac [#319](https://github.com/bia-technologies/yaxunit/issues/319), спасибо [@alexandr-yang](https://github.com/alexandr-yang) +* Мелкие исправления в документации [#320](https://github.com/bia-technologies/yaxunit/issues/320), спасибо [@alexandr-yang](https://github.com/alexandr-yang) +* [Bug]: Некорректное время результатов тестов в отчете формата allure, спасибо [@AlexPCRus](https://github.com/AlexPCRus) diff --git a/documentation/docs/features/dependencies.md b/documentation/docs/features/dependencies.md new file mode 100644 index 000000000..d6a82239e --- /dev/null +++ b/documentation/docs/features/dependencies.md @@ -0,0 +1,128 @@ +# Зависимости + +Предположим у вас есть набор серверных тестов, которые требуют наличия файлов хранящихся в репозитории на клиенте. +Для выполнения этих тестов вам необходимо передать файлы на сервер перед выполнением. В дополнение, передачу необходимо выполнить только один раз и только если выполняются тесты, для которых файлы нужны. + +В решении этой проблемы может помочь механизм зависимостей, который: + +* Позволяет указывать зависимости тестов +* Для разрешения зависимостей используется код 1с, вызываемый с клиента +* Разрешение зависимостей выполняется единожды и результат может быть переиспользован в различных тестах +* Если по какой-то причине не удалось разрешить зависимость, то зависимые тесты не будут выполнятся. +* YAxUnit на данный момент реализует зависимость от файлов проекта, которая проверяет наличие нужных файлов и переносит их на сервер. + +Например, вам необходимо проверить, что файл `.gitignore` содержит исключение для `ConfigDumpInfo.xml`. + +```bsl +Процедура ИсполняемыеСценарии() Экспорт + ЮТТесты. + .ДобавитьТест("ПроверитьДанныеGitIgnore") + .ЗависитОт().ФайлыПроекта(".gitignore"); // Указываем зависимость +КонецПроцедуры + +Процедура ПроверитьДанныеGitIgnore() Экспорт + + ПолноеИмяФайла = ЮТест.Зависимость(ЮТЗависимости.ФайлыПроекта(".gitignore")).ПолноеИмя; // Получаем результат работы зависимости + + ЮТест.ОжидаетЧто(ЮТФайлы.Существует(ПолноеИмяФайла), "Файл каталога проекта не существует") + .ЭтоИстина(); + + Данные = ЮТОбщий.ДанныеТекстовогоФайла(ПолноеИмяФайла); + ЮТест.ОжидаетЧто(Данные, "Содержимое файла") + .Содержит("ConfigDumpInfo.xml"); + +КонецПроцедуры +``` + +В примере движок проверит наличие файла `.gitignore` в каталоге проекта и перенесет его на сервер и сохранит в контексте путь к у файлу (причем, для сервера и клиент будут сохранены разные пути). + +Другой пример, в своих тестах мы добавили зависимость для создания `ФабрикаXDTO` из файлов: + +```bsl +Процедура ИсполняемыеСценарии() Экспорт + ЮТТесты. + .ДобавитьТест("ВыполнитьОбмен") + .ЗависитОт().ФабрикаСбора(); +КонецПроцедуры + +Процедура ВыполнитьОбмен() Экспорт + + Фабрика = ЮТест.Зависимость(ЮТЗависимости.ФабрикаСбора()).Фабрика; // Получаем результат работы зависимости + ... + +КонецПроцедуры +``` + +Здесь для тестирования различных обменов мы создаем, на основании файлов хранящихся в репозитории, фабрику XDTO. При этом фабрика создается только один раз и доступна во всех серверных тестах. + +## Зачем нужны зависимости + +Основной целью создания зависимостей было предоставление единого механизма для работы с "тяжелыми" и часто используемыми зависимостями тестов. В большинстве случаев достаточно создать общий метод и вызывать его в тестах или событиях и таким образом готовить контекст теста. Но в некоторых случаях, таких как использование "клиентских" файлов в серверных тестах, этот вариант не подходит. Чтобы избежать костылей в подобных ситуациях и были добавлены зависимости. + +## Принцип работы + +1. В своих тестах вы указываете зависимости для тестов (наборов или модулей). +2. При запуске, YAxUnit анализирует какие тесты вы хотите запустить и собирает по ним реестр зависимостей. +3. Движок обрабатывает реестр зависимостей: + * вызывает методы реализующие зависимости + * сохраняет признак успешности обработки зависимости + * сохраняет данные, которые сформировала зависимость. +4. Тесты связанные с неразрешенными зависимостями переводятся в статус "Пропущен" и не вызываются при прогоне. +5. После этого происходит запуск тестов. +6. Любой тест может обратиться к результатам обработки зависимостей используя `ЮТест.Зависимость` + +## Доступные виды зависимостей + +### Зависимость `ФайлыПроекта` + +Зависимость тестов от файлов проекта. Если в каталоге проекта нет этих файлов, то тест не будет выполнен. + +:::tip +Каталог проекта задается в [параметрах запуска](../getting-started/run/configuration.md) - `projectPath`. +::: + +Эта зависимость переносит файлы на сервер, чтобы они были доступны в серверных тестах и сохраняет в контексте путь к перенесенному файлу/каталогу (для клиентского теста будет хранится путь к файлам на клиенте). + +```bsl +Процедура ИсполняемыеСценарии() Экспорт + ЮТТесты. + .ДобавитьТест("РаботаСФайлами") + .ЗависитОт().ФайлыПроекта("ОтносительныеПуть"); // Указываем зависимость +КонецПроцедуры + +Процедура РаботаСФайлами() Экспорт + + КаталогСФайлами = ЮТест.Зависимость(ЮТЗависимости.ФайлыПроекта("ОтносительныеПуть")).ПолноеИмя; + ... + +КонецПроцедуры +``` + +### Зависимость `ФабрикаXDTO` + +Зависимость тестов от фабрики XDTO, созданной на основании файлов проекта. +Создает на сервере из файлов фабрику и сохраняет ее в контекст. + +```bsl +Процедура ИсполняемыеСценарии() Экспорт + ЮТТесты. + ..ДобавитьСерверныйТест("ФабрикаJUnit").ЗависитОт().ФабрикаXDTO("fixtures/junit") +КонецПроцедуры + +Процедура ФабрикаJUnit() Экспорт + + Фабрика = ЮТест.Зависимость(ЮТЗависимости.ФабрикаXDTO("fixtures/junit")).Фабрика; + + ТестовыйНабор = ЮТест.Данные().КонструкторОбъектаXDTO("testsuite", "http://junit.org/schema", Фабрика) + .ФикцияНезаполненных() + .ДанныеОбъекта(); + + ЮТест.ОжидаетЧто(ТестовыйНабор) + .ИмеетТип(Тип("ОбъектXDTO")) + .Существует() + .ИмеетСвойство("properties") + .ИмеетСвойство("testcase") + .ИмеетСвойство("failures"); + +КонецПроцедуры +``` diff --git a/documentation/docs/features/events.md b/documentation/docs/features/events.md index 67c86fe01..5845eda2c 100644 --- a/documentation/docs/features/events.md +++ b/documentation/docs/features/events.md @@ -67,3 +67,181 @@ YAxUnit также использует события для работы вн * Выполнять начальную подготовку базы или настройку движка перед прогонами * Реализовывать свои механизмы (например удаление данных с использованием подписок) * Формировать отчеты о тестировании online. + +### Подписка на события движка + +Для подключения своих обработчиков событий вам необходимо: + +1. Создание структуры подсистем + 1. Создать свою подсистему (не рекомендуется использовать подсистемы движка) с именем оканчивающимся на `ЮТПодключаемыеМодули`, например, `Тесты_ЮТПодключаемыеМодули`. + 2. У созданной подсистемы снять флаг `ВключатьВКомандныйИнтерфейс`. + 3. Внутри нее создать подсистему с именем `ОбработчикиСобытий`. + 4. Внутри подсистемы `ОбработчикиСобытий` создать подсистемы для нужной группы событий: + * Инициализация + * ЗагрузкаТестов + * ИсполнениеТестов +2. Добавить общий модуль (или использовать подходящий существующий) в котором будут размещены обработчики событий. +3. Сигнатура и описание обработчиков описаны ниже, примеры многих из них можно увидеть в движке. + +#### Пример + +Задача: необходимо по умолчанию включить настройку `ВТранзакции` для всех тестов. + +Для этого необходимо подписаться на событие [`УстановитьПараметрыЗапускаПоУмолчанию`](#установитьпараметрызапускапоумолчаниюпараметрызапуска), которое относится к блоку [`Инициализация`](#инициализация) + +Структура подсистем: +![Структура подсистем](images/test-settings-events-tree.png) + +```bsl title="НастройкаYAxUnit" +#Область СлужебныйПрограммныйИнтерфейс + +// Установить настройки по умолчанию. +// +// Параметры: +// ПараметрыЗапуска - см. ЮТФабрика.ПараметрыЗапуска +Процедура УстановитьПараметрыЗапускаПоУмолчанию(ПараметрыЗапуска) Экспорт + + ПараметрыЗапуска.settings.ВТранзакции = Истина; + +КонецПроцедуры + +#КонецОбласти + +``` + +## Описание событий движка + +### Инициализация + +#### УстановитьПараметрыЗапускаПоУмолчанию(ПараметрыЗапуска) + +`&НаКлиенте`. + +Подписка на это событие позволяет: + +* выполнить базовую настройку параметров запуска +* эту настройку можно переопределить параметрами запуска (json файл с тройками) +* может быть полезно при расширении возможностей движка новыми л механизмами +* обработчик может (а точнее, должен) изменять `ПараметрыЗапуска` + +Параметры: + +* ПараметрыЗапуска - см. [ЮТФабрика.ПараметрыЗапуска](/api/ЮТФабрика#параметрызапуска) + +#### ИнициализацияКонтекста(ДанныеКонтекста) + +`&НаСервере` и `&НаКлиенте`. + +Вызывается при первичной инициализации глобального контекста. +Используется для первоначального заполнения контекста, параметра `ДанныеКонтекста`. + +Параметры: + +* ДанныеКонтекста - Структура + +#### Инициализация(ПараметрыЗапуска) + +`&НаКлиенте` + +Вызывается после инициализации контекстов и загрузки настроек. +Позволяет выполнить настройку различных механизмов движка. + +:::note В этом обработчике нельзя менять параметр `ПараметрыЗапуска`. +::: + +Параметры: + +* ПараметрыЗапуска - см. [ЮТФабрика.ПараметрыЗапуска](/api/ЮТФабрика#параметрызапуска) + +### ЗагрузкаТестов + +#### ПередЧтениеСценариев() + +`&НаКлиенте` + +Вызывается перед загрузкой тестов. + +#### ПередЧтениемСценариевМодуля(МетаданныеМодуля) + +`&НаКлиенте`/`&НаСервере` в зависимости от доступности модуля. + +Вызывается перед чтением сценариев конкретного модуля (вызовом метода `ИсполняемыеСценарии`). +Позволяет настроить базовые параметры перед чтением настроек тестов модуля. +Параметры: + +* МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМодуля + +#### ПослеЧтенияСценариевМодуля(МетаданныеМодуля, ИсполняемыеСценарии) + +`&НаКлиенте`/`&НаСервере` в зависимости от доступности модуля. + +Позволяет настроить/обработать параметры загруженных настроек тестов модуля + +Параметры: + +* МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМодуля +* ИсполняемыеСценарии - см. ЮТТестыСлужебный.СценарииМодуля + +#### ПослеЧтенияСценариев(Сценарии) + +`&НаКлиенте` + +Вызывается после загрузки всех тестов. + +#### ПослеФормированияИсполняемыхНаборовТестов(ИсполняемыеТестовыеМодули) + +`&НаКлиенте` + +Вызывается после формирования исполняемых тестов, сформированных на основе зарегистрированных тестов. + +Например, из одного клиент-серверного теста формируется 2 исполняемых теста (для сервера и для клиента) + +### ИсполнениеТестов + +#### ПередВыполнениемТестов(ИсполняемыеМодули) + +`&НаКлиенте` + +Перед запуском всех тестов. + +#### ПередВсемиТестамиМодуля(ОписаниеСобытия) + +`&НаКлиенте`/`&НаСервере` в зависимости от доступности модуля. + +Смотрите описание [выше](#события-тестов) + +#### ПередТестовымНабором(ОписаниеСобытия) + +`&НаКлиенте`/`&НаСервере` в зависимости от доступности модуля. + +Смотрите описание [выше](#события-тестов) + +#### ПередКаждымТестом(ОписаниеСобытия) + +`&НаКлиенте`/`&НаСервере` в зависимости от доступности модуля. + +Смотрите описание [выше](#события-тестов) + +#### ПослеКаждогоТеста(ОписаниеСобытия) + +`&НаКлиенте`/`&НаСервере` в зависимости от доступности модуля. + +Смотрите описание [выше](#события-тестов) + +#### ПослеТестовогоНабора(ОписаниеСобытия) + +`&НаКлиенте`/`&НаСервере` в зависимости от доступности модуля. + +Смотрите описание [выше](#события-тестов) + +#### ПослеВсехТестовМодуля(ОписаниеСобытия) + +`&НаКлиенте`/`&НаСервере` в зависимости от доступности модуля. + +Смотрите описание [выше](#события-тестов) + +#### ПослеВыполненияТестов(РезультатТестирования) + +`&НаКлиенте` + +После выполнения всех тестов. diff --git a/documentation/docs/features/images/test-settings-events-tree.png b/documentation/docs/features/images/test-settings-events-tree.png new file mode 100644 index 000000000..968ecf352 Binary files /dev/null and b/documentation/docs/features/images/test-settings-events-tree.png differ diff --git a/documentation/docs/getting-started/edt-plugin/images/launch-type-and-extension.png b/documentation/docs/getting-started/edt-plugin/images/launch-type-and-extension.png index ae669afa2..1c3698fa2 100644 Binary files a/documentation/docs/getting-started/edt-plugin/images/launch-type-and-extension.png and b/documentation/docs/getting-started/edt-plugin/images/launch-type-and-extension.png differ diff --git a/documentation/docs/getting-started/edt-plugin/images/report.png b/documentation/docs/getting-started/edt-plugin/images/report.png index 8314a493e..201bf5167 100644 Binary files a/documentation/docs/getting-started/edt-plugin/images/report.png and b/documentation/docs/getting-started/edt-plugin/images/report.png differ diff --git a/documentation/docs/getting-started/edt-plugin/images/yaxunit-commands.png b/documentation/docs/getting-started/edt-plugin/images/yaxunit-commands.png index 6170ba18b..46dfef4ad 100644 Binary files a/documentation/docs/getting-started/edt-plugin/images/yaxunit-commands.png and b/documentation/docs/getting-started/edt-plugin/images/yaxunit-commands.png differ diff --git a/documentation/docs/getting-started/run/configuration.md b/documentation/docs/getting-started/run/configuration.md index 591621c51..5be0241eb 100644 --- a/documentation/docs/getting-started/run/configuration.md +++ b/documentation/docs/getting-started/run/configuration.md @@ -7,12 +7,13 @@ | Имя параметра | Тип | Значение по умолчанию | Описание | |-------------------|-----------|-------------------------------------------------|--------------------------------------------------------------------------------------------------------------| | `filter` | `Object` | [Object, смотрите ниже](#параметры-фильтрации) | Параметры фильтрации, поиска тестов | -| `reportFormat` | `String` | `"jUnit"` | Формат отчета о тестировании, возможные значения: `"jUnit"`, `"JSON"` , `"allure"` | +| `reportFormat` | `String` | `"jUnit"` | Формат отчета о тестировании, возможные значения: `"jUnit"`, `"JSON"` , `"allure"` | | `reportPath` | `String` | `""` | Путь к формируемому отчету, можно указать или каталог (в которому будет создан файл отчета) или путь к файлу | | `closeAfterTests` | `Boolean` | `True` | Признак закрытия 1С:Предприятие по завершению тестирования | | `showReport` | `Boolean` | `True` | Открыть форму отчета завершению тестирования | | `logging` | `Object` | [Object, смотрите ниже](#параметры-логирования) | Параметры логирования, подробнее ниже | | `exitCode` | `String` | `""` | Путь к файлу, в который будет записан признак успешного выполнения (0 - успешно, 1 - есть ошибки) | +| `projectPath` | `String` | `""` | Путь к каталогу проекта, содержащему файлы для тестов | ## Параметры фильтрации diff --git a/documentation/docs/yaxunit-ui.md b/documentation/docs/yaxunit-ui.md index 2d9ec4304..b1b158251 100644 --- a/documentation/docs/yaxunit-ui.md +++ b/documentation/docs/yaxunit-ui.md @@ -5,13 +5,13 @@ tags: [Начало] # Графический интерфейс -Расширение добавляет в командный интерфейс конфигурации новый раздел "Юнит тест". +Расширение добавляет в командный интерфейс конфигурации новый раздел `YAxUnit`. Из него вы можете интерактивно запускать тесты или сформировать файл конфигурации запуска. ## Запуск тестов -Для запуска и отладки тестов вы можете воспользоваться командой "Запуск тестов" +Для запуска и отладки тестов вы можете воспользоваться командой `Запуск тестирования`. Будут автоматически загружены все тесты и выведены в виде дерева сгруппированного по тестовым наборам (модулям). @@ -30,11 +30,11 @@ tags: [Начало] ## Интерфейс настройки конфигурации Для облегчения создания конфигурации реализована форма конфигурирования. -Чтобы найти форму, перейдите в подсистему `Юнит тесты` или воспользуйтесь меню `Все функции` / `Функции для технического специалиста`. -Там найдете обработку `Юнит тесты`, из которой, воспользовавшись командой `Сформировать настройки` попадете в интерфейс конфигурирования +Чтобы найти форму, перейдите в раздел `YAxUnit` и воспользуйтесь командой `Сформировать настройки тестирования`. +Также можно воспользоваться меню `Все функции` / `Функции для технического специалиста`, там найдете обработку `Юнит-тесты`, из которой, воспользовавшись командой `Сформировать настройки` попадете в интерфейс конфигурирования. ![Конфигурирование](images/config-ui.png) -Позволяет указать запускаемые тесты и получить строку запуска из терминала и параметры для конфигуратора +Позволяет указать запускаемые тесты и получить строку запуска из терминала и параметры для конфигуратора. ![Настройка конфигуратора](images/configurator-settings.png) diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270/Module.bsl" new file mode 100644 index 000000000..afd2e1135 --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270/Module.bsl" @@ -0,0 +1,64 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область ПрограммныйИнтерфейс + +// Указывает зависимость теста (набора или модуля) от файлов проекта. +// Гарантирует доступность файлов как на клиенте, так и на сервере. +// +// Параметры: +// ПутьКФайлам - Строка - Относительный путь к файлу проекта (относительно настройки projectPath) +// +// Возвращаемое значение: +// CommonModule.ЮТТесты - Файлы проекта +Функция ФайлыПроекта(ПутьКФайлам) Экспорт + + ОписаниеЗависимости = ЮТФабрика.НовоеОписаниеЗависимости(); + ОписаниеЗависимости.Идентификатор = "ФайлыПроекта"; + ОписаниеЗависимости.МетодРеализации = "ЮТРазрешениеЗависимостейСлужебныйКлиент.ФайлыПроекта"; + ОписаниеЗависимости.Параметры.Добавить(ПутьКФайлам); + ОписаниеЗависимости.Асинхронный = Истина; + + Возврат ЮТЗависимостиСлужебный.ДобавитьЗависимостьПриРегистрации(ОписаниеЗависимости); + +КонецФункции + +// Указывает зависимость теста (набора или модуля) от фабрики XDTO, создаваемой на основании файлов. +// Создает и кэширует фабрику, предоставляя к доступ из любого серверного теста +// +// Параметры: +// ПутьКФайлам - Строка - Относительный путь к файлу проекта (относительно настройки projectPath) +// +// Возвращаемое значение: +// CommonModule.ЮТТесты - Файлы проекта +Функция ФабрикаXDTO(ПутьКФайлам) Экспорт + + ФайлыПроекта(ПутьКФайлам); + + ОписаниеЗависимости = ЮТФабрика.НовоеОписаниеЗависимости(); + ОписаниеЗависимости.Идентификатор = "ФабрикаXDTO"; + ОписаниеЗависимости.МетодРеализации = "ЮТРазрешениеЗависимостейСлужебныйВызовСервера.ФабрикаXDTO"; + ОписаниеЗависимости.Параметры.Добавить(ПутьКФайлам); + ОписаниеЗависимости.ОбработкаНаСервере = Истина; + ОписаниеЗависимости.ДоступностьНаКлиенте = Ложь; + + Возврат ЮТЗависимостиСлужебный.ДобавитьЗависимостьПриРегистрации(ОписаниеЗависимости); + +КонецФункции + +#КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270.mdo" new file mode 100644 index 000000000..2b73677be --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270.mdo" @@ -0,0 +1,11 @@ + + + ЮТЗависимости + + ru + Зависимости + + true + true + true + diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" new file mode 100644 index 000000000..073c7e129 --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -0,0 +1,155 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область СлужебныйПрограммныйИнтерфейс + +Функция ДанныеЗависимости(ОписаниеЗависимости) Экспорт + + КлючЗависимости = КлючЗависимости(ОписаниеЗависимости); + + Результаты = ЮТКонтекстСлужебный.ЗначениеКонтекста(ИмяКонтекстаДанныеЗависимостей()); + ДанныеЗависимости = Результаты[КлючЗависимости]; + + Если ДанныеЗависимости <> Неопределено Тогда + Возврат ДанныеЗависимости; + КонецЕсли; + + РезультатРазрешения = РезультатРазрешенияЗависимости(КлючЗависимости); + ПредставлениеЗависимости = ПредставлениеЗависимости(ОписаниеЗависимости); + + Если РезультатРазрешения = Неопределено Или НЕ РезультатРазрешения.Успешно Тогда + ВызватьИсключение СтрШаблон("Не указана или не разрешена зависимость `%1`", ПредставлениеЗависимости); + КонецЕсли; + +#Если Сервер Тогда + Если НЕ РезультатРазрешения.ДоступностьНаСервере Тогда + ВызватьИсключение СтрШаблон("Зависимость `%1` недоступна на сервере", ПредставлениеЗависимости); + КонецЕсли; +#Иначе + Если НЕ РезультатРазрешения.ДоступностьНаКлиенте Тогда + ВызватьИсключение СтрШаблон("Зависимость `%1` недоступна на клиенте", ПредставлениеЗависимости); + КонецЕсли; +#КонецЕсли + + Возврат ДанныеЗависимости; + +КонецФункции + +// Служебный метод, используется только в модуле см. ЮТЗависимости. +// +// Параметры: +// ОписаниеЗависимости - см. ЮТФабрика.НовоеОписаниеЗависимости +// +// Возвращаемое значение: +// CommonModule.ЮТТесты +Функция ДобавитьЗависимостьПриРегистрации(ОписаниеЗависимости) Экспорт + + Если ЮТКонтекстСлужебный.ТекущийЭтапПрогона() <> ЮТФабрика.ЭтапыПрогона().ЗагрузкаТестов Тогда + Возврат ОписаниеЗависимости; + Иначе + ЮТТестыСлужебный.ДобавитьЗависимость(ОписаниеЗависимости); + Возврат ЮТТесты; + КонецЕсли; + +КонецФункции + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция КлючЗависимости(ОписаниеЗависимости) Экспорт + + Идентификатор = ВРег(ОписаниеЗависимости.Идентификатор); + + Если ЗначениеЗаполнено(ОписаниеЗависимости.Параметры) Тогда + Возврат ЮТОбщий.СтрокаJSON(Новый Структура("Идентификатор, Параметры", Идентификатор, ОписаниеЗависимости.Параметры)); + Иначе + Возврат Идентификатор; + КонецЕсли; + +КонецФункции + +Функция ПредставлениеЗависимости(ОписаниеЗависимости) Экспорт + + Если ЗначениеЗаполнено(ОписаниеЗависимости.Параметры) Тогда + Возврат ОписаниеЗависимости.Идентификатор + ЮТКоллекции.ПредставлениеМассива(ОписаниеЗависимости.Параметры); + Иначе + Возврат ОписаниеЗависимости.Идентификатор; + КонецЕсли; + +КонецФункции + +Функция УникальнаяЗависимость(Зависимости, ОписаниеЗависимости) Экспорт + + КлючЗависимости = КлючЗависимости(ОписаниеЗависимости); + + УникальнаяЗависимость = Зависимости[КлючЗависимости]; + + Если УникальнаяЗависимость <> Неопределено Тогда + Возврат УникальнаяЗависимость; + КонецЕсли; + + Копия = ЮТКоллекции.СкопироватьСтруктуру(ОписаниеЗависимости); + Копия.Параметры = Новый ФиксированныйМассив(ОписаниеЗависимости.Параметры); + Копия.Ключ = КлючЗависимости; + + УникальнаяЗависимость = Новый ФиксированнаяСтруктура(Копия); + + Зависимости.Вставить(КлючЗависимости, УникальнаяЗависимость); + + Возврат УникальнаяЗависимость; + +КонецФункции + +Функция РезультатРазрешенияЗависимости(КлючЗависимости) + + ДанныеКонтекста = КонтекстРазрешенныеЗависимости(); + Возврат ДанныеКонтекста[КлючЗависимости]; + +КонецФункции + +#Область Контексты + +Процедура ИнициализацияКонтекста(ДанныеКонтекста) Экспорт + + ДанныеКонтекста.Вставить(ИмяКонтекстаДанныеЗависимостей(), Новый Соответствие()); + ДанныеКонтекста.Вставить(ИмяКонтекстаРазрешенныеЗависимости(), Новый Соответствие()); + +КонецПроцедуры + +Функция КонтекстРазрешенныеЗависимости() Экспорт + + Возврат ЮТКонтекстСлужебный.ЗначениеКонтекста(ИмяКонтекстаРазрешенныеЗависимости()); + +КонецФункции + +Функция ИмяКонтекстаРазрешенныеЗависимости() Экспорт + + Возврат "КонтекстРазрешенныеЗависимости"; + +КонецФункции + +Функция ИмяКонтекстаДанныеЗависимостей() Экспорт + + Возврат "КонтекстДанныеЗависимостей"; + +КонецФункции + +#КонецОбласти + +#КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" new file mode 100644 index 000000000..7b9e8ea57 --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" @@ -0,0 +1,11 @@ + + + ЮТЗависимостиСлужебный + + ru + Зависимости служебный + + true + true + true + diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" new file mode 100644 index 000000000..4c853644f --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -0,0 +1,50 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область СлужебныйПрограммныйИнтерфейс + +Функция РазрешитьЗависимость(Знач ОписаниеЗависимости) Экспорт + + Попытка + Результат = ЮТМетодыСлужебный.ВызватьФункцию(ОписаниеЗависимости.МетодРеализации, ОписаниеЗависимости.Параметры, Ложь); + Исключение + Результат = ЮТФабрикаСлужебный.РезультатРазрешенияЗависимости(); + Результат.Ошибка = ИнформацияОбОшибке(); + КонецПопытки; + + СохраняемыйКонтекст = Результат.СохраняемыйКонтекстСервер; + Если СохраняемыйКонтекст = Неопределено Тогда + СохраняемыйКонтекст = Результат.СохраняемыйКонтекст; + КонецЕсли; + + Если СохраняемыйКонтекст <> Неопределено Тогда + + ПередаваемыеЗначения = Новый Соответствие(); + ПередаваемыеЗначения.Вставить(ОписаниеЗависимости.Ключ, СохраняемыйКонтекст); + ЮТКонтекстСлужебный.ВставитьЗначениеКонтекста(ЮТЗависимостиСлужебный.ИмяКонтекстаДанныеЗависимостей(), ПередаваемыеЗначения); + + КонецЕсли; + + Результат.СохраняемыйКонтекст = Неопределено; + Результат.СохраняемыйКонтекстСервер = Неопределено; + + Возврат Результат; + +КонецФункции + +#КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" new file mode 100644 index 000000000..ac6e933e5 --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" @@ -0,0 +1,10 @@ + + + ЮТЗависимостиСлужебныйВызовСервера + + ru + Зависимости служебный вызов сервера + + true + true + diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" new file mode 100644 index 000000000..29da51f9b --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" @@ -0,0 +1,346 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область СлужебныйПрограммныйИнтерфейс + +// Разрешить зависимости. +// +// Параметры: +// ТестовыеМодули - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля +// Обработчик - ОписаниеОповещения +Процедура РазрешитьЗависимости(ТестовыеМодули, Обработчик) Экспорт + + Зависимости = СобратьЗависимости(ТестовыеМодули); + + Если НЕ ЗначениеЗаполнено(Зависимости) Тогда + ЮТЛогирование.Отладка("Обработка зависимостей: нет зависимостей"); + ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьОбработчик(Обработчик); + Возврат; + КонецЕсли; + + ПараметрыИсполнения = ЮТАсинхроннаяОбработкаСлужебныйКлиент.ЦепочкаАсинхроннойОбработки(); + ПараметрыИсполнения.Вставить("ТестовыеМодули", ТестовыеМодули); + + Для Каждого ОписаниеЗависимости Из Зависимости Цикл + Параметры = Новый Структура("ОписаниеЗависимости, ПараметрыИсполнения", ОписаниеЗависимости, ПараметрыИсполнения); + + Если ОписаниеЗависимости.Асинхронный Тогда + Загрузчик = Новый ОписаниеОповещения("РазрешитьЗависимостьАсинхронно", ЭтотОбъект, Параметры); + Иначе + Загрузчик = Новый ОписаниеОповещения("РазрешитьЗависимость", ЭтотОбъект, Параметры); + КонецЕсли; + + ПараметрыИсполнения.Цепочка.Добавить(Загрузчик); + КонецЦикла; + + ПараметрыИсполнения.Цепочка.Добавить(Новый ОписаниеОповещения("ПослеОбработкиЗависимостей", ЭтотОбъект, ПараметрыИсполнения)); + ПараметрыИсполнения.Цепочка.Добавить(Обработчик); + + ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(ПараметрыИсполнения); + +КонецПроцедуры + +// Дедупликация зависимостей. +// +// Параметры: +// РезультатЧтенияТестов - Массив из см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля - Набор описаний тестовых модулей, +// которые содержат информацию о запускаемых тестах +Процедура ДедупликацияЗависимостей(РезультатЧтенияТестов) Экспорт + + Зависимости = Новый Соответствие(); + + Для Каждого ТестовыйМодуль Из РезультатЧтенияТестов Цикл + + ДедупликацияЗависимостейОбъекта(Зависимости, ТестовыйМодуль); + + Для Каждого ТестовыйНабор Из ТестовыйМодуль.НаборыТестов Цикл + + ДедупликацияЗависимостейОбъекта(Зависимости, ТестовыйНабор); + + Для Каждого Тест Из ТестовыйНабор.Тесты Цикл + ДедупликацияЗависимостейОбъекта(Зависимости, Тест); + КонецЦикла; + + КонецЦикла; + + КонецЦикла; + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#Область РазрешениеЗависимостей + +Функция СобратьЗависимости(ТестовыеМодули) + + Зависимости = Новый Массив(); + ДобавленныеЗависимости = Новый Соответствие(); + + Для Каждого ТестовыйМодуль Из ТестовыеМодули Цикл + + СобратьЗависимостиОбъекта(ТестовыйМодуль, Зависимости, ДобавленныеЗависимости); + + Для Каждого Набор Из ТестовыйМодуль.НаборыТестов Цикл + + СобратьЗависимостиОбъекта(Набор, Зависимости, ДобавленныеЗависимости); + + Для Каждого Тест Из Набор.Тесты Цикл + СобратьЗависимостиОбъекта(Тест, Зависимости, ДобавленныеЗависимости); + КонецЦикла; + + КонецЦикла; + + КонецЦикла; + + Возврат Зависимости; + +КонецФункции + +Процедура СобратьЗависимостиОбъекта(Объект, Зависимости, ДобавленныеЗависимости) + + Для Каждого Зависимость Из Объект.Зависимости Цикл + + Если ДобавленныеЗависимости[Зависимость.Ключ] = Неопределено Тогда + Зависимости.Добавить(Зависимость); + ДобавленныеЗависимости.Вставить(Зависимость.Ключ, Истина); + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +Процедура РазрешитьЗависимостьАсинхронно(_, Параметры) Экспорт + + ОписаниеЗависимости = Параметры.ОписаниеЗависимости; + ПредставлениеЗависимости = ЮТЗависимостиСлужебный.ПредставлениеЗависимости(ОписаниеЗависимости); + + ЮТЛогирование.Отладка("Обработка зависимостей: асинхронная обработка зависимости " + ПредставлениеЗависимости); + + Если ОписаниеЗависимости.ОбработкаНаСервере Тогда + Результат = ЮТФабрикаСлужебный.РезультатРазрешенияЗависимости(); + Результат.Ошибка = "Скорректируйте параметры зависимости, асинхронная зависимость не может обрабатываться на сервере"; + ОбработатьРезультатРазрешенияЗависимости(Результат, Параметры); + Возврат; + КонецЕсли; + + Обработчик = Новый ОписаниеОповещения("ОбработатьРезультатРазрешенияЗависимости", ЭтотОбъект, Параметры); + + ИмяМетода = ОписаниеЗависимости.МетодРеализации; + ПараметрыМетода = ЮТКоллекции.СкопироватьМассив(ОписаниеЗависимости.Параметры); + ПараметрыМетода.Добавить(Обработчик); + + Ошибка = ЮТМетодыСлужебный.ВыполнитьМетод(ИмяМетода, ПараметрыМетода); + + Если Ошибка <> Неопределено Тогда + Результат = ЮТФабрикаСлужебный.РезультатРазрешенияЗависимости(); + Результат.Ошибка = Ошибка; + ОбработатьРезультатРазрешенияЗависимости(Результат, Параметры); + КонецЕсли; + +КонецПроцедуры + +Процедура РазрешитьЗависимость(_, Параметры) Экспорт + + ОписаниеЗависимости = Параметры.ОписаниеЗависимости; + + Попытка + Если ОписаниеЗависимости.ОбработкаНаСервере Тогда + Результат = ЮТЗависимостиСлужебныйВызовСервера.РазрешитьЗависимость(ОписаниеЗависимости); + Иначе + Результат = ЮТМетодыСлужебный.ВызватьФункцию(ОписаниеЗависимости.МетодРеализации, ОписаниеЗависимости.Параметры, Ложь); + КонецЕсли; + Исключение + + Результат = ЮТФабрикаСлужебный.РезультатРазрешенияЗависимости(); + Результат.Ошибка = ИнформацияОбОшибке(); + + КонецПопытки; + + ОбработатьРезультатРазрешенияЗависимости(Результат, Параметры); + +КонецПроцедуры + +Процедура ОбработатьРезультатРазрешенияЗависимости(Результат, Параметры) Экспорт + + ОписаниеЗависимости = Параметры.ОписаниеЗависимости; + + ПредставлениеЗависимости = ЮТЗависимостиСлужебный.ПредставлениеЗависимости(ОписаниеЗависимости); + ЮТЛогирование.Отладка("Обработка зависимостей: сохранение результата обработки зависимости " + ПредставлениеЗависимости); + + Если НЕ Результат.Успешно Тогда + Сообщение = СтрШаблон("Не удалось разрешить зависимость `%1`", ПредставлениеЗависимости); + Результат.Ошибка = ОписаниеОшибкиПропуска(Сообщение, Результат.Ошибка); + ЮТЛогирование.Ошибка(Результат.Ошибка.Сообщение); + КонецЕсли; + + СохранитьРезультатРазрешенияЗависимости(ОписаниеЗависимости, Результат); + ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(Параметры.ПараметрыИсполнения); + + ЮТЛогирование.Отладка("Обработка зависимостей: завершена обработка зависимости " + ПредставлениеЗависимости); + +КонецПроцедуры + +Процедура СохранитьРезультатРазрешенияЗависимости(ОписаниеЗависимости, Результат) Экспорт + + ИмяДанныеЗависимостей = ЮТЗависимостиСлужебный.ИмяКонтекстаДанныеЗависимостей(); + ИмяРазрешенныеЗависимости = ЮТЗависимостиСлужебный.ИмяКонтекстаРазрешенныеЗависимости(); + + Результат.ДоступностьНаКлиенте = ОписаниеЗависимости.ДоступностьНаКлиенте; + Результат.ДоступностьНаСервере = ОписаниеЗависимости.ДоступностьНаСервере; + + КонтекстРазрешенныеЗависимости = ЮТЗависимостиСлужебный.КонтекстРазрешенныеЗависимости(); + КонтекстРазрешенныеЗависимости.Вставить(ОписаниеЗависимости.Ключ, Результат); + + ПередаваемыеЗначения = Новый Соответствие(); + ПередаваемыеЗначения.Вставить(ОписаниеЗависимости.Ключ, Результат); + + ЮТКонтекстСлужебный.ВставитьЗначениеКонтекста(ИмяРазрешенныеЗависимости, ПередаваемыеЗначения); + ЮТКонтекстСлужебный.ВставитьЗначениеКонтекста(ИмяРазрешенныеЗависимости, ПередаваемыеЗначения, Истина); + + Если Результат.СохраняемыйКонтекст <> Неопределено Тогда + + ПередаваемыеЗначения.Вставить(ОписаниеЗависимости.Ключ, Результат.СохраняемыйКонтекст); + ЮТКонтекстСлужебный.ВставитьЗначениеКонтекста(ИмяДанныеЗависимостей, ПередаваемыеЗначения); + ЮТКонтекстСлужебный.ВставитьЗначениеКонтекста(ИмяДанныеЗависимостей, ПередаваемыеЗначения, Истина); + + КонецЕсли; + + Если Результат.СохраняемыйКонтекстСервер <> Неопределено Тогда + + ПередаваемыеЗначения.Вставить(ОписаниеЗависимости.Ключ, Результат.СохраняемыйКонтекстСервер); + ЮТКонтекстСлужебный.ВставитьЗначениеКонтекста(ИмяДанныеЗависимостей, ПередаваемыеЗначения, Истина); + + КонецЕсли; + + Если Результат.СохраняемыйКонтекстКлиент <> Неопределено Тогда + + ПередаваемыеЗначения.Вставить(ОписаниеЗависимости.Ключ, Результат.СохраняемыйКонтекстКлиент); + ЮТКонтекстСлужебный.ВставитьЗначениеКонтекста(ИмяДанныеЗависимостей, ПередаваемыеЗначения); + + КонецЕсли; + +КонецПроцедуры + +Процедура ПослеОбработкиЗависимостей(_, ПараметрыИсполнения) Экспорт + + РазрешенныеЗависимости = ЮТЗависимостиСлужебный.КонтекстРазрешенныеЗависимости(); + Статусы = ЮТФабрика.СтатусыИсполненияТеста(); + + Для Каждого ТестовыйМодуль Из ПараметрыИсполнения.ТестовыеМодули Цикл + РезультатРазрешенияЗависимостей = ПроверкаРазрешенныхЗависимостей(ТестовыйМодуль, РазрешенныеЗависимости); + + Если НЕ РезультатРазрешенияЗависимостей.Успешно Тогда + УстановитьОшибкиВ(ТестовыйМодуль.НаборыТестов, РезультатРазрешенияЗависимостей.Ошибка); + Прервать; + КонецЕсли; + + Для Каждого Набор Из ТестовыйМодуль.НаборыТестов Цикл + + РезультатРазрешенияЗависимостей = ПроверкаРазрешенныхЗависимостей(Набор, РазрешенныеЗависимости); + + Если НЕ РезультатРазрешенияЗависимостей.Успешно Тогда + УстановитьОшибкиВ(Набор.Тесты, РезультатРазрешенияЗависимостей.Ошибка); + Набор.Ошибки.Добавить(РезультатРазрешенияЗависимостей.Ошибка); + Набор.Выполнять = Ложь; + Продолжить; + КонецЕсли; + + Для Каждого Тест Из Набор.Тесты Цикл + РезультатРазрешенияЗависимостей = ПроверкаРазрешенныхЗависимостей(Тест, РазрешенныеЗависимости); + + Если НЕ РезультатРазрешенияЗависимостей.Успешно Тогда + Тест.Ошибки.Добавить(РезультатРазрешенияЗависимостей.Ошибка); + Тест.Статус = Статусы.Пропущен; + КонецЕсли; + КонецЦикла; + + КонецЦикла; + КонецЦикла; + + ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(ПараметрыИсполнения); + +КонецПроцедуры + +Функция ОписаниеОшибкиПропуска(Описание, ИнформацияОбОшибке = Неопределено) + + Ошибка = ЮТФабрикаСлужебный.ОписаниеОшибкиПропуска(Описание); + + Если ИнформацияОбОшибке = Неопределено Тогда + Возврат Ошибка; + КонецЕсли; + + ТипОшибки = ТипЗнч(ИнформацияОбОшибке); + + Если ТипОшибки = Тип("Структура") Тогда + ЗаполнитьЗначенияСвойств(Ошибка, ИнформацияОбОшибке, , "ТипОшибки, Сообщение"); + Ошибка.Сообщение = ЮТСтроки.ДобавитьСтроку(Описание, ИнформацияОбОшибке.Сообщение, Символы.ПС); + ИначеЕсли ТипОшибки = Тип("ИнформацияОбОшибке") Тогда + Ошибка.Стек = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке); + ИначеЕсли ТипОшибки = Тип("Строка") Тогда + Ошибка.Сообщение = ЮТСтроки.ДобавитьСтроку(Описание, ИнформацияОбОшибке, Символы.ПС); + КонецЕсли; + + Возврат Ошибка; + +КонецФункции + +Функция УстановитьОшибкиВ(Объекты, Ошибка) + + Для Каждого Объект Из Объекты Цикл + Объект.Ошибки.Добавить(Ошибка); + Объект.Выполнять = Ложь; + КонецЦикла; + + Возврат Ошибка; + +КонецФункции + +Функция ПроверкаРазрешенныхЗависимостей(Объект, РазрешенныеЗависимости) + + Для Каждого ОписаниеЗависимости Из Объект.Зависимости Цикл + Результат = РазрешенныеЗависимости[ОписаниеЗависимости.Ключ]; + + Если Результат = Неопределено Тогда + Результат = ЮТФабрикаСлужебный.РезультатРазрешенияЗависимости(); + ПредставлениеЗависимости = ЮТЗависимостиСлужебный.ПредставлениеЗависимости(ОписаниеЗависимости); + Сообщение = СтрШаблон("Нет информации о зависимости `%1`, что-то пошло не так", ПредставлениеЗависимости); + Результат.Ошибка = ОписаниеОшибкиПропуска(Сообщение); + КонецЕсли; + + Если НЕ Результат.Успешно Тогда + Возврат Результат; + КонецЕсли; + КонецЦикла; + + Возврат Новый Структура("Успешно", Истина); + +КонецФункции + +#КонецОбласти + +Процедура ДедупликацияЗависимостейОбъекта(Зависимости, Объект) + + Для Инд = 0 По Объект.Зависимости.ВГраница() Цикл + Объект.Зависимости[Инд] = ЮТЗависимостиСлужебный.УникальнаяЗависимость(Зависимости, Объект.Зависимости[Инд]); + КонецЦикла; + +КонецПроцедуры + +#КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202.mdo" new file mode 100644 index 000000000..b0cf4a168 --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202.mdo" @@ -0,0 +1,10 @@ + + + ЮТЗависимостиСлужебныйКлиент + + ru + Зависимости служебный клиент + + true + true + diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213/Module.bsl" index e2a540455..2a24499ef 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213/Module.bsl" @@ -206,7 +206,9 @@ КонецФункции -// Возвращает коллекцию движений документа +// Функция получает список движений по указанному документу и регистру. +// Если документ не делает движений по указанному регистру, функция вызывает исключение. +// Результатом работы функции является список записей регистра, отсортированных по номеру строки. // // Параметры: // Документ - ДокументСсылка diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" index 55ce81d8b..fe2c9c409 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" @@ -28,6 +28,7 @@ ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикПодключитьКомпоненты"); ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикИнициализация"); ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикЗагрузитьТесты"); + ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикРазрешитьЗависимости"); ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикВыполнитьТестирование"); ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикСохранитьОтчет"); ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикСохранитьКодВозврата"); @@ -44,6 +45,7 @@ ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикИнициализация"); ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикЗагрузитьТесты"); + ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикРазрешитьЗависимости"); ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикВыполнитьТестирование"); ПараметрыИсполнения.Цепочка.Добавить(ОбработчикЗавершения); @@ -120,12 +122,16 @@ Процедура ВыполнитьИнициализацию(ПараметрыЗапуска) Экспорт ЮТКонтекстСлужебный.ИнициализироватьКонтекст(); + ЮТКонтекстСлужебный.УстановитьТекущийЭтапПрогона(ЮТФабрика.ЭтапыПрогона().Инициализация); + + ЮТКонтекстСлужебный.СохранитьПараметрыЗапуска(ПараметрыЗапуска); ЮТКонтекстСлужебный.УстановитьГлобальныеНастройкиВыполнения(ПараметрыЗапуска.settings); - // Повторно сохраним для передачи на сервер - ЮТКонтекстСлужебный.УстановитьГлобальныеНастройкиВыполнения(ЮТКонтекстСлужебный.ГлобальныеНастройкиВыполнения()); ЮТСобытияСлужебный.Инициализация(ПараметрыЗапуска); + // Повторно сохраним для передачи на сервер + ЮТКонтекстСлужебный.УстановитьГлобальныеНастройкиВыполнения(ЮТКонтекстСлужебный.ГлобальныеНастройкиВыполнения()); + КонецПроцедуры #КонецОбласти @@ -140,7 +146,7 @@ КонецПроцедуры -Процедура ОбработчикЗагрузитьПараметры(Результат, ДополнительныеПараметры) Экспорт +Процедура ОбработчикЗагрузитьПараметры(_, ДополнительныеПараметры) Экспорт Обработчик = ЮТАсинхроннаяОбработкаСлужебныйКлиент.СледующийОбработчик(ДополнительныеПараметры); ЮТПараметрыЗапускаСлужебный.ПараметрыЗапуска(ДополнительныеПараметры.АргументыЗапуска, Обработчик); @@ -159,15 +165,16 @@ КонецПроцедуры -Процедура ОбработчикИнициализация(Результат, ДополнительныеПараметры) Экспорт +Процедура ОбработчикИнициализация(_, ДополнительныеПараметры) Экспорт ВыполнитьИнициализацию(ДополнительныеПараметры.ПараметрыЗапуска); ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(ДополнительныеПараметры); КонецПроцедуры -Процедура ОбработчикЗагрузитьТесты(Результат, ДополнительныеПараметры) Экспорт +Процедура ОбработчикЗагрузитьТесты(_, ДополнительныеПараметры) Экспорт + ЮТКонтекстСлужебный.УстановитьТекущийЭтапПрогона(ЮТФабрика.ЭтапыПрогона().ЗагрузкаТестов); ЮТСобытияСлужебный.ПередЧтениеСценариев(); ТестовыеМодули = ЮТЧитательСлужебный.ЗагрузитьТесты(ДополнительныеПараметры.ПараметрыЗапуска); @@ -187,8 +194,18 @@ КонецПроцедуры -Процедура ОбработчикВыполнитьТестирование(Результат, ДополнительныеПараметры) Экспорт +Процедура ОбработчикРазрешитьЗависимости(_, ДополнительныеПараметры) Экспорт + + ЮТКонтекстСлужебный.УстановитьТекущийЭтапПрогона(ЮТФабрика.ЭтапыПрогона().РазрешениеЗависимостей); + Обработчик = ЮТАсинхроннаяОбработкаСлужебныйКлиент.СледующийОбработчик(ДополнительныеПараметры); + + ЮТЗависимостиСлужебныйКлиент.РазрешитьЗависимости(ДополнительныеПараметры.ИсполняемыеТестовыеМодули, Обработчик); + +КонецПроцедуры + +Процедура ОбработчикВыполнитьТестирование(_, ДополнительныеПараметры) Экспорт + ЮТКонтекстСлужебный.УстановитьТекущийЭтапПрогона(ЮТФабрика.ЭтапыПрогона().ПрогонТестов); ЮТСобытияСлужебный.ПередВыполнениемТестов(ДополнительныеПараметры.ИсполняемыеТестовыеМодули); РезультатыТестирования = Новый Массив(); @@ -207,8 +224,9 @@ КонецПроцедуры -Процедура ОбработчикСохранитьОтчет(Результат, ДополнительныеПараметры) Экспорт +Процедура ОбработчикСохранитьОтчет(_, ДополнительныеПараметры) Экспорт + ЮТКонтекстСлужебный.УстановитьТекущийЭтапПрогона(ЮТФабрика.ЭтапыПрогона().ФормированиеОтчета); Если ЗначениеЗаполнено(ДополнительныеПараметры.ПараметрыЗапуска.reportPath) Тогда Обработчик = ЮТАсинхроннаяОбработкаСлужебныйКлиент.СледующийОбработчик(ДополнительныеПараметры); ЮТОтчетСлужебный.СформироватьОтчет(ДополнительныеПараметры.РезультатыТестирования, ДополнительныеПараметры.ПараметрыЗапуска, Обработчик); @@ -218,14 +236,14 @@ КонецПроцедуры -Процедура ОбработчикСохранитьКодВозврата(Результат, ДополнительныеПараметры) Экспорт +Процедура ОбработчикСохранитьКодВозврата(_, ДополнительныеПараметры) Экспорт ЗаписатьКодВозврата(ДополнительныеПараметры.РезультатыТестирования, ДополнительныеПараметры.ПараметрыЗапуска); ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(ДополнительныеПараметры); КонецПроцедуры -Процедура ОбработчикЗавершить(Результат, ДополнительныеПараметры) Экспорт +Процедура ОбработчикЗавершить(_, ДополнительныеПараметры) Экспорт Параметры = ДополнительныеПараметры.ПараметрыЗапуска; ЮТКонтекстСлужебный.УдалитьКонтекст(); @@ -238,7 +256,7 @@ КонецПроцедуры -Процедура ОбработчикПодключитьКомпоненты(Результат, ДополнительныеПараметры) Экспорт +Процедура ОбработчикПодключитьКомпоненты(_, ДополнительныеПараметры) Экспорт Если ДополнительныеПараметры.ПараметрыЗапуска.ПодключатьВнешниеКомпоненты Тогда Обработчик = ЮТАсинхроннаяОбработкаСлужебныйКлиент.СледующийОбработчик(ДополнительныеПараметры); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 1639bbe78..aa0b354a4 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -100,10 +100,25 @@ КонецПроцедуры +Процедура УстановитьСсылкуНового(Контекст, Значение) Экспорт + + Если ТипЗнч(Значение) = Тип("УникальныйИдентификатор") Тогда + УникальныйИдентификаторСсылки = Значение; + ИначеЕсли ЮТСтроки.ЭтоУникальныйИдентификаторСтрокой(Значение) Тогда + УникальныйИдентификаторСсылки = Новый УникальныйИдентификатор(Значение); + Иначе + ВызватьИсключение "Неправильный тип значения для ссылки нового"; + КонецЕсли; + + Контекст.УникальныйИдентификаторСсылки = УникальныйИдентификаторСсылки; + +КонецПроцедуры + Функция Записать(Контекст, ВернутьОбъект = Ложь, ОбменДаннымиЗагрузка = Ложь) Экспорт ПараметрыЗаписи = ЮТОбщий.ПараметрыЗаписи(); ПараметрыЗаписи.ДополнительныеСвойства = Контекст.ДополнительныеСвойства; + ПараметрыЗаписи.УникальныйИдентификаторСсылки = Контекст.УникальныйИдентификаторСсылки; ПараметрыЗаписи.ОбменДаннымиЗагрузка = ОбменДаннымиЗагрузка; Ссылка = ЮТТестовыеДанныеСлужебныйВызовСервера.СоздатьЗапись(Контекст.Менеджер, Контекст.Данные, ПараметрыЗаписи, ВернутьОбъект); @@ -116,7 +131,12 @@ Функция НовыйОбъект(Контекст) Экспорт - Возврат ЮТТестовыеДанныеСлужебныйВызовСервера.НовыйОбъект(Контекст.Менеджер, Контекст.Данные, Контекст.ДополнительныеСвойства); + Возврат ЮТТестовыеДанныеСлужебныйВызовСервера.НовыйОбъект( + Контекст.Менеджер, + Контекст.Данные, + Контекст.ДополнительныеСвойства, + Контекст.УникальныйИдентификаторСсылки + ); КонецФункции @@ -124,6 +144,7 @@ ПараметрыЗаписи = ЮТОбщий.ПараметрыЗаписи(); ПараметрыЗаписи.ДополнительныеСвойства = Контекст.ДополнительныеСвойства; + ПараметрыЗаписи.УникальныйИдентификаторСсылки = Контекст.УникальныйИдентификаторСсылки; ПараметрыЗаписи.РежимЗаписи = РежимЗаписиДокумента.Проведение; Ссылка = ЮТТестовыеДанныеСлужебныйВызовСервера.СоздатьЗапись(Контекст.Менеджер, Контекст.Данные, ПараметрыЗаписи, ВернутьОбъект); @@ -195,14 +216,17 @@ // * Метаданные - см. ЮТМетаданные.СтруктураОписанияОбъектаМетаданных // * ТекущаяТабличнаяЧасть - Строка // * ДополнительныеСвойства - Структура +// * УникальныйИдентификаторСсылки - УникальныйИдентификатор +// - Неопределено Функция НовыйКонтекстКонструктора(Менеджер) Экспорт - Контекст = Новый Структура("Менеджер, Данные, Метаданные", Менеджер, Новый Структура()); + Контекст = Новый Структура(); Контекст.Вставить("Менеджер", Менеджер); Контекст.Вставить("Данные", Новый Структура()); Контекст.Вставить("Метаданные", ЮТМетаданные.ОписаниеОбъектаМетаданных(Менеджер)); Контекст.Вставить("ТекущаяТабличнаяЧасть", ""); Контекст.Вставить("ДополнительныеСвойства", Новый Структура()); + Контекст.Вставить("УникальныйИдентификаторСсылки", Неопределено); //@skip-check constructor-function-return-section Возврат Контекст; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index ce8875bb8..df13a7565 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -78,7 +78,7 @@ //@skip-check constructor-function-return-section Возврат ЮТКоллекции.ЗначениеСтруктуры(Объект, Ключи[Ключи.ВГраница()]); - + КонецФункции // УстановитьЗначениеКонтекста @@ -108,6 +108,30 @@ КонецПроцедуры +// УстановитьЗначениеКонтекста +// Устанавливает значение вложенного контекста, вложенного реквизита контекста +// +// Параметры: +// ИмяРеквизита - Строка - Имя реквизита/вложенного контекста +// Значения - Структура, Соответствие из Произвольный - Набор устанавливаемых значений контекста +// УстановитьНаСервер - Булево - Установить также на сервер +Процедура ВставитьЗначениеКонтекста(Знач ИмяРеквизита, Знач Значения, Знач УстановитьНаСервер = Ложь) Экспорт + +#Если НЕ Сервер Тогда + Если УстановитьНаСервер Тогда + ЮТКонтекстСлужебныйВызовСервера.ВставитьЗначениеКонтекста(ИмяРеквизита, Значения); + Возврат; + КонецЕсли; +#КонецЕсли + + ДанныеКонтекста = ЗначениеКонтекста(ИмяРеквизита); + + Для Каждого Элемент Из Значения Цикл + ДанныеКонтекста.Вставить(Элемент.Ключ, Элемент.Значение); + КонецЦикла; + +КонецПроцедуры + // КонтекстТеста // Возвращает структуру, в которой можно хранить данные используемые в тесте // Данные живут в рамках одного теста, но доступны в обработчиках событий `ПередКаждымТестом` и `ПослеКаждогоТеста` @@ -231,10 +255,25 @@ КонецФункции +Функция ТекущийЭтапПрогона() Экспорт + + Возврат ЗначениеКонтекста(ИмяКонтекстаЭтапПрогона()); + +КонецФункции + +// см. ЮТФабрика.ПараметрыЗапуска +Функция ПараметрыЗапуска() Экспорт + + Возврат ЗначениеКонтекста(ИмяКонтекстаПараметрыЗапуска()); + +КонецФункции + Функция ОписаниеКонтекста() Экспорт Описание = Новый Структура; + ЮТСобытияСлужебный.ИнициализацияКонтекста(Описание); + Возврат Описание; КонецФункции @@ -281,6 +320,22 @@ КонецПроцедуры +Процедура СохранитьПараметрыЗапуска(Знач ПараметрыЗапуска) Экспорт + + УстановитьЗначениеКонтекста(ИмяКонтекстаПараметрыЗапуска(), ПараметрыЗапуска, Истина); + +КонецПроцедуры + +Процедура УстановитьТекущийЭтапПрогона(Этап) Экспорт + + Если НЕ ЮТФабрика.ЭтапыПрогона().Свойство(Этап) Тогда + ВызватьИсключение СтрШаблон("Передан неизвестный этап тестового прогона: `%1`", Этап); + КонецЕсли; + + УстановитьЗначениеКонтекста(ИмяКонтекстаЭтапПрогона(), Этап, Истина); + +КонецПроцедуры + Процедура УдалитьКонтекст() Экспорт #Если Клиент Тогда @@ -336,4 +391,16 @@ КонецФункции +Функция ИмяКонтекстаПараметрыЗапуска() + + Возврат "КонтекстПараметрыЗапуска"; + +КонецФункции + +Функция ИмяКонтекстаЭтапПрогона() + + Возврат "КонтекстЭтапПрогона"; + +КонецФункции + #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index 7911602e9..a69650916 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\232\320\276\320\275\321\202\320\265\320\272\321\201\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -52,6 +52,18 @@ КонецПроцедуры +// УстановитьЗначениеКонтекста +// Устанавливает значение вложенного контекста, вложенного реквизита контекста +// +// Параметры: +// ИмяРеквизита - Строка - Имя реквизита/вложенного контекста +// Значения - Структура, Соответствие - Новое значение реквизита/вложенного контекста +Процедура ВставитьЗначениеКонтекста(Знач ИмяРеквизита, Знач Значения) Экспорт + + ЮТКонтекстСлужебный.ВставитьЗначениеКонтекста(ИмяРеквизита, Значения, Ложь); + +КонецПроцедуры + Функция ЗначениеКонтекста(Знач ИмяРеквизита) Экспорт Возврат ЮТКонтекстСлужебный.ЗначениеКонтекста(ИмяРеквизита); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265/Module.bsl" index 714a1022a..398aa2e9a 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265/Module.bsl" @@ -18,21 +18,6 @@ #Область ПрограммныйИнтерфейс -// Модули подсистемы. -// Возвращает список модулей подсистемы -// Подсистема должна находится в подсистеме "ЮТДинамическиПодключаемые" -// Параметры: -// ИмяПодсистемы - Строка - Имя подсистемы -// Серверные - Булево - Возвращять модули доступные на сервере -// Клиентские - Булево - Возвращять модули доступные на клиенте -// Возвращаемое значение: -// Массив из Строка - Имена модулей входящих в подсистему -Функция МодулиПодсистемы(ИмяПодсистемы, Серверные = Истина, Клиентские = Истина) Экспорт - - Возврат ЮТМетаданныеСлужебныйПовтИсп.МодулиПодсистемы(ИмяПодсистемы, Серверные, Клиентские); - -КонецФункции - // Описание объекта метаданных. // // Параметры: diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index b9b2b4e7e..69f9a5f43 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -44,49 +44,6 @@ КонецФункции -// Модули подсистемы. -// Возвращает список модулей подсистемы -// Подсистема должна находится в подсистеме "ЮТДинамическиПодключаемые" -// Параметры: -// ИмяПодсистемы - Строка - Имя подсистемы -// Серверные - Булево - Возвращять модули доступные на сервере -// Клиентские - Булево - Возвращять модули доступные на клиенте -// -// Возвращаемое значение: -// Массив из Строка - Имена модулей входящих в подсистему -Функция МодулиПодсистемы(Знач ИмяПодсистемы, Знач Серверные, Знач Клиентские) Экспорт - - Подсистема = Метаданные.Подсистемы.ЮТДинамическиПодключаемые.Подсистемы.Найти(ИмяПодсистемы); - - Если Подсистема = Неопределено Тогда - - ВызватьИсключение СтрШаблон("Подсистема ""%1"" не найдена", ИмяПодсистемы); - - КонецЕсли; - - Модули = Новый Массив(); - - Для Каждого Объект Из Подсистема.Состав Цикл - - Если Метаданные.ОбщиеМодули.Содержит(Объект) Тогда - - Добавить = (Серверные И Клиентские) - ИЛИ (Серверные И (Объект.Сервер)) - ИЛИ (Клиентские И (Объект.КлиентУправляемоеПриложение Или Объект.ВызовСервера)); - // КлиентОбычноеПриложение сознательно не анализируется, он должен идти в паре с другой настройкой - - Если Добавить Тогда - Модули.Добавить(Объект.Имя); - КонецЕсли; - - КонецЕсли; - - КонецЦикла; - - Возврат Модули; - -КонецФункции - Функция МетаданныеМодуля(Знач Модуль) Экспорт Если ТипЗнч(Модуль) = Тип("Строка") Тогда @@ -376,4 +333,26 @@ КонецФункции +Функция ПодсистемыПодключаемыхМодулей() Экспорт + + ИмяПодсистемы = "ЮТПодключаемыеМодули"; + Результат = Новый Массив(); + Результат.Добавить(ИмяПодсистемы); + + Для Каждого Подсистема Из Метаданные.Подсистемы Цикл + + Если Подсистема.ВключатьВКомандныйИнтерфейс Тогда + Продолжить; + КонецЕсли; + + Если СтрЗаканчиваетсяНа(Подсистема.Имя, "_" + ИмяПодсистемы) Тогда + Результат.Добавить(Подсистема.Имя); + КонецЕсли; + + КонецЦикла; + + Возврат Результат; + +КонецФункции + #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Module.bsl" index baf334e70..23f46fc6a 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Module.bsl" @@ -18,12 +18,6 @@ #Область СлужебныйПрограммныйИнтерфейс -Функция МодулиПодсистемы(ИмяПодсистемы, Серверные, Клиентские) Экспорт - - Возврат ЮТМетаданныеСлужебныйВызовСервера.МодулиПодсистемы(ИмяПодсистемы, Серверные, Клиентские); - -КонецФункции - Функция ОписаниеОбъектаМетаданных(Знач Менеджер) Экспорт Возврат ЮТМетаданныеСлужебныйВызовСервера.ОписаниеОбъектаМетаданных(Менеджер); @@ -67,4 +61,10 @@ КонецФункции +Функция ПодсистемыПодключаемыхМодулей() Экспорт + + Возврат ЮТМетаданныеСлужебныйВызовСервера.ПодсистемыПодключаемыхМодулей(); + +КонецФункции + #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 4283e2b32..2baddf600 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\234\320\265\321\202\320\276\320\264\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -102,23 +102,7 @@ #Если ВебКлиент Тогда ВызватьИсключение ЮТИсключения.МетодНеДоступен("ЮТОбщий.ВыполнитьМетод"); #Иначе - Если СтрЗаканчиваетсяНа(ПолноеИмяМетода, ")") Тогда - - Алгоритм = ПолноеИмяМетода; - - ИначеЕсли НЕ ЗначениеЗаполнено(Параметры) Тогда - - Алгоритм = ПолноеИмяМетода + "()"; - - ИначеЕсли ТипЗнч(Параметры) = Тип("Массив") Тогда - - Алгоритм = СтрШаблон("%1(%2)", ПолноеИмяМетода, СтрокаПараметровМетода(Параметры, "Параметры")); - - Иначе - - ВызватьИсключение СтрШаблон("Не верный тип параметров `%1` для вызова метода, должен быть массив", ТипЗнч(Параметры)); - - КонецЕсли; + Алгоритм = СтрокаВызоваМетода(ПолноеИмяМетода, Параметры, "Параметры"); Попытка //@skip-check server-execution-safe-mode @@ -132,6 +116,22 @@ КонецФункции +Функция СтрокаВызоваМетода(ПолноеИмяМетода, Параметры, ИмяМассиваПараметров = "Параметры") Экспорт + + Если СтрЗаканчиваетсяНа(ПолноеИмяМетода, ")") Тогда + Алгоритм = ПолноеИмяМетода; + ИначеЕсли НЕ ЗначениеЗаполнено(Параметры) Тогда + Алгоритм = ПолноеИмяМетода + "()"; + ИначеЕсли ТипЗнч(Параметры) = Тип("Массив") Тогда + Алгоритм = СтрШаблон("%1(%2)", ПолноеИмяМетода, СтрокаПараметровМетода(Параметры, ИмяМассиваПараметров)); + Иначе + ВызватьИсключение СтрШаблон("Не верный тип параметров `%1` для вызова метода, должен быть массив", ТипЗнч(Параметры)); + КонецЕсли; + + Возврат Алгоритм; + +КонецФункции + Функция ВычислитьБезопасно(Выражение) Экспорт #Если НЕ ВебКлиент И НЕ ТонкийКлиент Тогда @@ -152,6 +152,32 @@ КонецФункции +Функция ВызватьФункцию(ПолноеИмяМетода, Параметры, Безопасно = Истина) Экспорт + + Выражение = СтрокаВызоваМетода(ПолноеИмяМетода, Параметры); + +#Если НЕ ВебКлиент И НЕ ТонкийКлиент Тогда + Если Безопасно Тогда + УстановитьБезопасныйРежим(Истина); + Попытка + Значение = Вычислить(Выражение); + Исключение + УстановитьБезопасныйРежим(Ложь); + ВызватьИсключение; + КонецПопытки; + УстановитьБезопасныйРежим(Ложь); + Иначе + //@skip-check server-execution-safe-mode + Значение = Вычислить(Выражение); + КонецЕсли; +#Иначе + Значение = Вычислить(Выражение); +#КонецЕсли + + Возврат Значение; + +КонецФункции + #КонецОбласти #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217/Module.bsl" index fe14db317..d738e24f1 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\321\217/Module.bsl" @@ -18,6 +18,8 @@ #Область ПрограммныйИнтерфейс +#Область НастройкиТеста + // Возвращает значение настройки "ВТранзакции" для текущего исполняемого объекта (тест, набор, модуль) // // Возвращаемое значение: @@ -119,3 +121,30 @@ КонецФункции #КонецОбласти + +#Область НастройкиСеанса + +// Возвращает глобальные настройки выполнения, указанные в файле настроек запуска, объект`settings` +// +// Возвращаемое значение: +// Структура, Неопределено - Глобальные настройки +Функция ГлобальныеНастройкиВыполнения() Экспорт + + //@skip-check constructor-function-return-section + Возврат ЮТКонтекстСлужебный.ГлобальныеНастройкиВыполнения(); + +КонецФункции + +// Возвращает путь к каталогу проекта, указанному в файле настроек - `projectPath` +// +// Возвращаемое значение: +// Строка - Каталог проекта +Функция КаталогПроекта() Экспорт + + Возврат ЮТКонтекстСлужебный.ПараметрыЗапуска().projectPath; + +КонецФункции + +#КонецОбласти + +#КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" index 35b6160b9..4f021dbe1 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\320\261\321\211\320\270\320\271/Module.bsl" @@ -265,11 +265,14 @@ // * ДополнительныеСвойства - Структура // * РежимЗаписи - РежимЗаписиДокумента // - Неопределено +// * УникальныйИдентификаторСсылки - УникальныйИдентификатор +// - Неопределено Функция ПараметрыЗаписи() Экспорт ПараметрыЗаписи = Новый Структура(); ПараметрыЗаписи.Вставить("ОбменДаннымиЗагрузка", Ложь); ПараметрыЗаписи.Вставить("ДополнительныеСвойства", Новый Структура); + ПараметрыЗаписи.Вставить("УникальныйИдентификаторСсылки", Неопределено); ПараметрыЗаписи.Вставить("РежимЗаписи", Неопределено); Возврат ПараметрыЗаписи; @@ -356,7 +359,9 @@ // // Параметры: // Сообщение - Строка - Выводимое сообщение -Процедура ВывестиВКонсоль(Сообщение) Экспорт +Процедура ВывестиВКонсоль(Знач Сообщение) Экспорт + + Сообщение = Строка(Сообщение); Компонента = ЮТКомпоненты.Консоль(); #Если Сервер Тогда diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index faad6baad..2f39ac29d 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202Allure\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -86,8 +86,8 @@ Описание.name = РезультатТеста.Метод + ПредставлениеРежима; Описание.status = СтатусОтчета(РезультатТеста.Статус, Статусы); Описание.testCaseId = ЮТОбщий.ХешMD5(ПолныйИдентификаторТеста); - Описание.start = РезультатТеста.ДатаСтарта; - Описание.stop = РезультатТеста.ДатаСтарта + РезультатТеста.Длительность; + Описание.start = ЮниксВремя(РезультатТеста.ДатаСтарта); + Описание.stop = ЮниксВремя(РезультатТеста.ДатаСтарта) + РезультатТеста.Длительность; ОписаниеМодуля = ИмяМодуляПоСхеме(Модуль.МетаданныеМодуля.Имя); ИмяНабора = Модуль.МетаданныеМодуля.Имя; @@ -215,7 +215,7 @@ Описание.feature = Части[1]; Если Части.Количество() = 3 Тогда - Описание.story = ТипМодуляПоСуфииксу(Части[2]); + Описание.story = ТипМодуляПоСуффиксу(Части[2]); КонецЕсли; Возврат Описание; @@ -248,7 +248,7 @@ Возврат ТипОбъекта; КонецФункции -Функция ТипМодуляПоСуфииксу(Суффикс) +Функция ТипМодуляПоСуффиксу(Суффикс) ТипМодуля = Неопределено; @@ -260,6 +260,12 @@ Возврат ТипМодуля; +КонецФункции + +Функция ЮниксВремя(ДатаВМиллисекундах) + + Возврат ДатаВМиллисекундах - 62135596800000; + КонецФункции #КонецЕсли diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 9c9c40a99..eb89d6788 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -78,7 +78,7 @@ КонецЦикла; - ЗаписатьСвойства(ЗаписьXML, Новый Структура("executor, reportDate", "BIA YAxUnit", ТекущаяДатаСеанса())); + ЗаписатьСвойства(ЗаписьXML, Новый Структура("executor, reportDate", "BIA YAxUnit", ТекущаяДата())); ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.Закрыть(); @@ -179,7 +179,9 @@ Процедура ЗаписатьОшибку(ЗаписьXML, ОписаниеОшибки) Сообщение = СообщениеОбОшибке(ОписаниеОшибки); ЗаписьXML.ЗаписатьНачалоЭлемента("error"); - ЗаписьXML.ЗаписатьАтрибут("message", Сообщение); + Если Сообщение <> Неопределено Тогда + ЗаписьXML.ЗаписатьАтрибут("message", Сообщение); + КонецЕсли; Если ЗначениеЗаполнено(ОписаниеОшибки.ТипОшибки) Тогда ЗаписьXML.ЗаписатьАтрибут("type", XMLСтрока(ОписаниеОшибки.ТипОшибки)); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" index 967ce71fc..41bac2621 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\236\321\202\321\207\320\265\321\202JUnit\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" @@ -5,7 +5,6 @@ ru Отчет jUnit - true + true true - true diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index c35479552..5091b1bab 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\236\321\202\321\207\320\265\321\202\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -59,7 +59,7 @@ // + Значение - см. ЮТФабрикаСлужебный.ОписаниеФорматаОтчета Функция ПоддерживаемыеФорматыОтчетов() Экспорт - Модули = ЮТРасширенияСлужебный.ГенераторыОтчетов(); + Модули = ЮТПодключаемыеМодулиСлужебный.ГенераторыОтчетов(); Форматы = Новый Структура; Для Каждого Модуль Из Модули Цикл @@ -106,7 +106,7 @@ Функция МодульФормирования(Формат) - Модули = ЮТРасширенияСлужебный.ГенераторыОтчетов(); + Модули = ЮТПодключаемыеМодулиСлужебный.ГенераторыОтчетов(); Для Каждого Модуль Из Модули Цикл diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index b0b7c7e82..5c9c46221 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\227\320\260\320\277\321\203\321\201\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -67,6 +67,7 @@ Функция ПрочитатьПараметрыЗапуска(Знач ПараметрыЗапускаСтрокой, Обработчик) Параметры = ЮТФабрика.ПараметрыЗапуска(); + ЮТСобытияСлужебный.УстановитьПараметрыЗапускаПоУмолчанию(Параметры); Если Не ЗначениеЗаполнено(ПараметрыЗапускаСтрокой) Тогда ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьОбработчик(Обработчик, Параметры); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" similarity index 65% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 823f2eb9c..4fc92c72f 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -20,11 +20,11 @@ Функция ГенераторыОтчетов() Экспорт - Возврат МодулиПодсистемы("ЮТФормированиеОтчета"); + Возврат МодулиПодсистемы("ФормированиеОтчета", Ложь, Истина); КонецФункции -Функция ОбработчикиСобытий() Экспорт +Функция ОбработчикиСобытий(Подсистема) Экспорт Серверные = Ложь; Клиентские = Ложь; @@ -36,7 +36,13 @@ Клиентские = Истина; #КонецЕсли - Возврат ЮТМетаданные.МодулиПодсистемы("ЮТОбработчикиСобытий", Серверные, Клиентские); + Возврат ЮТПодключаемыеМодулиСлужебныйВызовСервера.ОбработчикиСобытий(Подсистема, Серверные, Клиентские); + +КонецФункции + +Функция ПодсистемыПодключаемыхМодулей() Экспорт + + Возврат ЮТМетаданныеСлужебныйПовтИсп.ПодсистемыПодключаемыхМодулей(); КонецФункции @@ -44,9 +50,9 @@ #Область СлужебныеПроцедурыИФункции -Функция МодулиПодсистемы(ИмяПодсистемы) +Функция МодулиПодсистемы(ИмяПодсистемы, Серверные, Клиентские) - ИменаМодулей = ЮТМетаданные.МодулиПодсистемы(ИмяПодсистемы); + ИменаМодулей = ЮТПодключаемыеМодулиСлужебныйВызовСервера.ПодключаемыеМодулиПодсистемы(ИмяПодсистемы, Серверные, Клиентские); Модули = Новый Массив(); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" similarity index 74% rename from "exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" rename to "exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" index 6d590a83d..88a291fb7 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" @@ -1,9 +1,9 @@ - ЮТРасширенияСлужебный + ЮТПодключаемыеМодулиСлужебный ru - Расширения функциональности + Подключаемые модули true true diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" new file mode 100644 index 000000000..56697ddff --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -0,0 +1,106 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область СлужебныйПрограммныйИнтерфейс + +Функция ОбработчикиСобытий(Знач ГруппаОбработчиков, Знач Серверные = Истина, Знач Клиентские = Истина) Экспорт + + Модули = Новый Массив(); + + Для Каждого ПодсистемаОбработчикиСобытий Из ПодсистемыПодключаемыхМодулей("ОбработчикиСобытий") Цикл + + ЮТКоллекции.ДополнитьМассив(Модули, МодулиПодсистемы(ПодсистемаОбработчикиСобытий, Серверные, Клиентские)); + + ПодсистемаГруппыОбработчиков = ПодсистемаОбработчикиСобытий.Подсистемы.Найти(ГруппаОбработчиков); + + Если ПодсистемаГруппыОбработчиков <> Неопределено Тогда + ЮТКоллекции.ДополнитьМассив(Модули, МодулиПодсистемы(ПодсистемаГруппыОбработчиков, Серверные, Клиентские)); + КонецЕсли; + + КонецЦикла; + + Возврат Модули; + +КонецФункции + +Функция ПодключаемыеМодулиПодсистемы(Знач ИмяПодсистемы, Знач Серверные = Истина, Знач Клиентские = Истина) Экспорт + + Модули = Новый Массив(); + + Для Каждого Подсистема Из ПодсистемыПодключаемыхМодулей(ИмяПодсистемы) Цикл + + ЮТКоллекции.ДополнитьМассив(Модули, МодулиПодсистемы(Подсистема, Серверные, Клиентские)); + + КонецЦикла; + + Возврат Модули; + +КонецФункции + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция ПодсистемыПодключаемыхМодулей(ИмяПодсистемы) + + ИменаПодсистем = ЮТМетаданныеСлужебныйПовтИсп.ПодсистемыПодключаемыхМодулей(); + + Подсистемы = Новый Массив(); + + Для Каждого ИмяПодсистемыПодключаемыхМодулей Из ИменаПодсистем Цикл + + ПодсистемаПодключаемыхМодулей = Метаданные.Подсистемы[ИмяПодсистемыПодключаемыхМодулей]; + + ВложеннаяПодсистема = ПодсистемаПодключаемыхМодулей.Подсистемы.Найти(ИмяПодсистемы); + + Если ВложеннаяПодсистема <> Неопределено Тогда + Подсистемы.Добавить(ВложеннаяПодсистема); + КонецЕсли; + + КонецЦикла; + + Возврат Подсистемы; + +КонецФункции + +Функция МодулиПодсистемы(Знач Подсистема, Знач Серверные, Знач Клиентские) + + Модули = Новый Массив(); + + Для Каждого Объект Из Подсистема.Состав Цикл + + Если Метаданные.ОбщиеМодули.Содержит(Объект) Тогда + + Добавить = (Серверные И Клиентские) + ИЛИ (Серверные И (Объект.Сервер)) + ИЛИ (Клиентские И (Объект.КлиентУправляемоеПриложение Или Объект.ВызовСервера)); + // КлиентОбычноеПриложение сознательно не анализируется, он должен идти в паре с другой настройкой + + Если Добавить Тогда + Модули.Добавить(Объект.Имя); + КонецЕсли; + + КонецЕсли; + + КонецЦикла; + + Возврат Модули; + +КонецФункции + +#КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" new file mode 100644 index 000000000..d93907c63 --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" @@ -0,0 +1,11 @@ + + + ЮТПодключаемыеМодулиСлужебныйВызовСервера + + ru + Подключаемые модули (Вызов сервера) + + true + true + DuringSession + diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" new file mode 100644 index 000000000..a53eeffb8 --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -0,0 +1,94 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область СлужебныйПрограммныйИнтерфейс + +Функция ПоместитьФайлыВРабочийКаталог(Знач ПереданныеФайлы) Экспорт + + Контекст = Новый Структура(); + Контекст.Вставить("РабочийКаталог", ФайлыПроектаРабочийКаталог()); + + ЮТФайлы.СоздатьКаталогРекурсивно(Контекст.РабочийКаталог); + + КаталогПроекта = ЮТНастройкиВыполнения.КаталогПроекта(); + + ЕстьПолноеИмя = ЮТОбщий.ПеременнаяСодержитСвойство(ПереданныеФайлы[0], "ПолноеИмя"); + + Для Каждого Файл Из ПереданныеФайлы Цикл + + ИмяФайла = ?(ЕстьПолноеИмя, Файл.ПолноеИмя, Файл.Имя); + ИмяВКаталоге = СтрЗаменить(ИмяФайла, КаталогПроекта, ""); + ПолноеИмя = ЮТФайлы.ОбъединитьПути(Контекст.РабочийКаталог, ИмяВКаталоге); + + ЮТФайлы.СоздатьРодительскийКаталог(ПолноеИмя); + ПолучитьИзВременногоХранилища(Файл.Хранение).Записать(ПолноеИмя); + + КонецЦикла; + + Возврат Контекст; + +КонецФункции + +Функция ФабрикаXDTO(Знач КаталогСхем) Экспорт + + Каталог = ЮТест.Зависимость(ЮТЗависимости.ФайлыПроекта(КаталогСхем)).ПолноеИмя; + + ПостроительСхем = Новый ПостроительСхемXML(); + ПостроительDOM = Новый ПостроительDOM(); + НаборСхем = Новый НаборСхемXML(); + + ФайлыСхем = НайтиФайлы(Каталог, "*.xsd", Истина); + + Для Каждого Файл Из ФайлыСхем Цикл + + ЧтениеXML = Новый ЧтениеXML(); + ЧтениеXML.ОткрытьФайл(Файл.ПолноеИмя); + Схема = ПостроительСхем.СоздатьСхемуXML(ПостроительDOM.Прочитать(ЧтениеXML).ЭлементДокумента); + ЧтениеXML.Закрыть(); + Если Схема <> Неопределено Тогда + НаборСхем.Добавить(Схема); + КонецЕсли; + + КонецЦикла; + + Фабрика = Новый ФабрикаXDTO(НаборСхем); + + Результат = ЮТФабрикаСлужебный.РезультатРазрешенияЗависимости(); + Результат.Успешно = Фабрика <> Неопределено; + + Если Результат.Успешно Тогда + Результат.СохраняемыйКонтекст = Новый Структура("Фабрика", Фабрика); + КонецЕсли; + + Возврат Результат; + +КонецФункции + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция ФайлыПроектаРабочийКаталог() + + КлючБазы = ЮТОбщий.ХешMD5(СтрокаСоединенияИнформационнойБазы()); + + Возврат ЮТФайлы.ОбъединитьПути(КаталогВременныхФайлов(), КлючБазы, "КаталогПроекта"); + +КонецФункции + +#КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" new file mode 100644 index 000000000..82d407525 --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" @@ -0,0 +1,10 @@ + + + ЮТРазрешениеЗависимостейСлужебныйВызовСервера + + ru + Разрешение зависимостей служебный вызов сервера + + true + true + diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" new file mode 100644 index 000000000..ac6cdbacd --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/Module.bsl" @@ -0,0 +1,139 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область СлужебныйПрограммныйИнтерфейс + +Процедура ФайлыПроекта(ПутьКФайлуПроекта, Обработчик) Экспорт + + ПараметрыИсполнения = ЮТАсинхроннаяОбработкаСлужебныйКлиент.ЦепочкаАсинхроннойОбработки(); + ПараметрыИсполнения.Вставить("ФинальныйОбработчик", Обработчик); + + КаталогПроекта = ЮТНастройкиВыполнения.КаталогПроекта(); + + Если ПустаяСтрока(КаталогПроекта) Тогда + Сообщение = "Не указан каталог проекта, необходимо указать каталог проекта в параметрах запуска"; + ПрерватьОбработку(Сообщение, ПараметрыИсполнения); + Возврат; + КонецЕсли; + + ПолныйПуть = ЮТФайлы.ОбъединитьПути(КаталогПроекта, ПутьКФайлуПроекта); + + ПараметрыИсполнения.Вставить("ПолныйПуть", ПолныйПуть); + ПараметрыИсполнения.Вставить("ПутьКФайлуПроекта", ПутьКФайлуПроекта); + + ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикПроверкиСуществования"); + ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикПроверкиКаталога"); + ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикРезультатовПоиска"); + ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикПеремещения"); + ПараметрыИсполнения.Цепочка.Добавить(Обработчик); + + ЮТФайлы.Существует(ПолныйПуть, ЮТАсинхроннаяОбработкаСлужебныйКлиент.СледующийОбработчик(ПараметрыИсполнения)); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#Область ФайлыПроекта + +Процедура ОбработчикПроверкиСуществования(Существует, Параметры) Экспорт + + Если НЕ Существует Тогда + Сообщение = СтрШаблон("Файл/каталог проекта `%1` не существует", Параметры.ПутьКФайлуПроекта); + ПрерватьОбработку(Сообщение, Параметры); + Возврат; + КонецЕсли; + + ЮТФайлы.ЭтоКаталог(Параметры.ПолныйПуть, ЮТАсинхроннаяОбработкаСлужебныйКлиент.СледующийОбработчик(Параметры)); + +КонецПроцедуры + +Процедура ОбработчикПроверкиКаталога(ЭтоКаталог, Параметры) Экспорт + + Обработчик = ЮТАсинхроннаяОбработкаСлужебныйКлиент.СледующийОбработчик(Параметры); + Если ЭтоКаталог Тогда + НачатьПоискФайлов(Обработчик, Параметры.ПолныйПуть, "*.*", Истина); + Иначе + НачатьПоискФайлов(Обработчик, Параметры.ПолныйПуть); + КонецЕсли; + +КонецПроцедуры + +Процедура ОбработчикРезультатовПоиска(НайденныеФайлы, Параметры) Экспорт + + Если НЕ ЗначениеЗаполнено(НайденныеФайлы) Тогда + Сообщение = СтрШаблон("Не удалось найти файлы каталога проекта по пути `%1`", Параметры.ПутьКФайлуПроекта); + ПрерватьОбработку(Сообщение, Параметры); + Возврат; + КонецЕсли; + + ФайлыДляПеремещения = Новый Массив(); + + Для Каждого Файл Из НайденныеФайлы Цикл + ФайлыДляПеремещения.Добавить(Новый ОписаниеПередаваемогоФайла(Файл.ПолноеИмя)); + КонецЦикла; + + Обработчик = ЮТАсинхроннаяОбработкаСлужебныйКлиент.СледующийОбработчик(Параметры); + НачатьПомещениеФайлов(Обработчик, ФайлыДляПеремещения, , Ложь); + +КонецПроцедуры + +Процедура ОбработчикПеремещения(ПомещенныеФайлы, Параметры) Экспорт + + Если НЕ ЗначениеЗаполнено(ПомещенныеФайлы) Тогда + Сообщение = СтрШаблон("Не удалось передать на сервер файлы проекта из каталога `%1`", Параметры.ПутьКФайлуПроекта); + ПрерватьОбработку(Сообщение, Параметры); + Возврат; + КонецЕсли; + + РезультатПередачиФайлов = ЮТРазрешениеЗависимостейСлужебныйВызовСервера.ПоместитьФайлыВРабочийКаталог(ПомещенныеФайлы); + + Результат = ЮТФабрикаСлужебный.РезультатРазрешенияЗависимости(); + Результат.Успешно = РезультатПередачиФайлов <> Неопределено; + + Если Результат.Успешно Тогда + Результат.СохраняемыйКонтекстКлиент = Новый Структура("РабочийКаталог, ПолноеИмя", ЮТНастройкиВыполнения.КаталогПроекта(), Параметры.ПолныйПуть); + Результат.СохраняемыйКонтекстСервер = РезультатПередачиФайлов; + Результат.СохраняемыйКонтекстСервер.Вставить("ПолноеИмя", ЮТФайлы.ОбъединитьПути(Результат.СохраняемыйКонтекстСервер.РабочийКаталог, Параметры.ПутьКФайлуПроекта)); + КонецЕсли; + + ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(Параметры, Результат); + +КонецПроцедуры + +Процедура ПрерватьОбработку(Ошибка, Параметры) + + Обработчик = Параметры.ФинальныйОбработчик; + Результат = ЮТФабрикаСлужебный.РезультатРазрешенияЗависимости(); + Результат.Ошибка = Ошибка; + + ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьОбработчик(Обработчик, Результат); + +КонецПроцедуры + +#КонецОбласти + +Процедура ДобавитьОбработчикЦепочки(ПараметрыИсполнения, ИмяМетода) + + Обработчик = Новый ОписаниеОповещения(ИмяМетода, ЭтотОбъект, ПараметрыИсполнения); + ПараметрыИсполнения.Цепочка.Добавить(Обработчик); + +КонецПроцедуры + +#КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202.mdo" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202.mdo" new file mode 100644 index 000000000..e062f3ec9 --- /dev/null +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202/\320\256\320\242\320\240\320\260\320\267\321\200\320\265\321\210\320\265\320\275\320\270\320\265\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\265\320\271\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202.mdo" @@ -0,0 +1,10 @@ + + + ЮТРазрешениеЗависимостейСлужебныйКлиент + + ru + Разрешение зависимостей служебный клиент + + true + true + diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 33f3de2cc..a68985960 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\240\320\265\320\263\320\270\321\201\321\202\321\200\320\260\321\206\320\270\321\217\320\236\321\210\320\270\320\261\320\276\320\272\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -487,7 +487,7 @@ Сообщение = СтрСоединить(Детали, Символы.ПС); КонецЕсли; - ДанныеОшибки = ЮТФабрикаСлужебный.ОписаниеВозникшейОшибки(ТипОшибки + ": " + Сообщение); + ДанныеОшибки = ЮТФабрикаСлужебный.ОписаниеОшибкиПропуска(ТипОшибки + ": " + Сообщение); Если Ошибка <> Неопределено Тогда ДанныеОшибки.Стек = СтекОшибки(Ошибка); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index f29fc2e19..cc1d3aeea 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\320\276\320\261\321\213\321\202\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -18,13 +18,53 @@ #Область СлужебныйПрограммныйИнтерфейс +#Область Инициализация + +// Подписка на это событие позволяет: +// +// * выполнить базовую настройку параметров запуска +// * эту настройку можно переопределить параметрами запуска (json файл с настройками) +// * может быть полезно при расширении возможностей движка новыми настраиваемыми механизмами +// * обработчик может (а точнее, должен) изменять `ПараметрыЗапуска` +// +// Параметры: +// ПараметрыЗапуска - см. ЮТФабрика.ПараметрыЗапуска +Процедура УстановитьПараметрыЗапускаПоУмолчанию(ПараметрыЗапуска) Экспорт + + Параметры = ЮТКоллекции.ЗначениеВМассиве(ПараметрыЗапуска); + ВызватьПодключаемыйОбработчикСобытия("УстановитьПараметрыЗапускаПоУмолчанию", "Инициализация", Параметры); + +КонецПроцедуры + +// Вызывается при первичной инициализации глобального контекста. +// Используется для первоначального заполнения контекста, параметра `ДанныеКонтекста` +// Вызывается и для сервера, и для клиента +// +// Параметры: +// ДанныеКонтекста - Структура +Процедура ИнициализацияКонтекста(ДанныеКонтекста) Экспорт + + Параметры = ЮТКоллекции.ЗначениеВМассиве(ДанныеКонтекста); + ВызватьПодключаемыйОбработчикСобытия("ИнициализацияКонтекста", "Инициализация", Параметры); + +КонецПроцедуры + +// Вызывается после инициализации контекстов и загрузки настроек. +// Позволяет выполнить настройку различных механизмов движка. +// +// Важно: В этом обработчике нельзя менять параметр `ПараметрыЗапуска`. +// +// Параметры: +// ПараметрыЗапуска - см. ЮТФабрика.ПараметрыЗапуска Процедура Инициализация(ПараметрыЗапуска) Экспорт Параметры = ЮТКоллекции.ЗначениеВМассиве(ПараметрыЗапуска); - ВызватьОбработчикРасширения("Инициализация", Параметры); + ВызватьПодключаемыйОбработчикСобытия("Инициализация", "Инициализация", Параметры); КонецПроцедуры +#КонецОбласти + #Область СобытияИсполненияТестов // Обработчик события "ПередВсемиТестамиМодуля" @@ -37,7 +77,7 @@ ЮТКонтекстСлужебный.УстановитьКонтекстМодуля(); ОписаниеСобытия = ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль); - ВызватьОбработкуСобытия("ПередВсемиТестами", ОписаниеСобытия); + ВызватьОбработкуСобытияИсполненияТестов("ПередВсемиТестами", ОписаниеСобытия); КонецПроцедуры @@ -52,7 +92,7 @@ ЮТКонтекстСлужебный.УстановитьКонтекстНабораТестов(); ОписаниеСобытия = ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль, Набор); - ВызватьОбработкуСобытия("ПередТестовымНабором", ОписаниеСобытия); + ВызватьОбработкуСобытияИсполненияТестов("ПередТестовымНабором", ОписаниеСобытия); КонецПроцедуры @@ -73,7 +113,7 @@ ПолучитьСообщенияПользователю(Истина); #КонецЕсли - ВызватьОбработкуСобытий(ЮТКоллекции.ЗначениеВМассиве("ПередКаждымТестом", "ПередТестом"), ОписаниеСобытия); + ВызватьОбработкуСобытийИсполненияТестов(ЮТКоллекции.ЗначениеВМассиве("ПередКаждымТестом", "ПередТестом"), ОписаниеСобытия); КонецПроцедуры @@ -87,7 +127,7 @@ ОписаниеСобытия = ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль, Набор, Тест); - ВызватьОбработкуСобытий(ЮТКоллекции.ЗначениеВМассиве("ПослеТеста", "ПослеКаждогоТеста"), ОписаниеСобытия); + ВызватьОбработкуСобытийИсполненияТестов(ЮТКоллекции.ЗначениеВМассиве("ПослеТеста", "ПослеКаждогоТеста"), ОписаниеСобытия); УстановитьКонтекстИсполнения(ТестовыйМодуль, Набор); @@ -101,7 +141,7 @@ Процедура ПослеТестовогоНабора(ТестовыйМодуль, Набор) Экспорт ОписаниеСобытия = ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль, Набор); - ВызватьОбработкуСобытия("ПослеТестовогоНабора", ОписаниеСобытия); + ВызватьОбработкуСобытияИсполненияТестов("ПослеТестовогоНабора", ОписаниеСобытия); УстановитьКонтекстИсполнения(ТестовыйМодуль); @@ -114,7 +154,7 @@ Процедура ПослеВсехТестовМодуля(ТестовыйМодуль) Экспорт ОписаниеСобытия = ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль); - ВызватьОбработкуСобытия("ПослеВсехТестов", ОписаниеСобытия); + ВызватьОбработкуСобытияИсполненияТестов("ПослеВсехТестов", ОписаниеСобытия); УстановитьКонтекстИсполнения(); @@ -127,7 +167,7 @@ Процедура ПередВыполнениемТестов(ИсполняемыеМодули) Экспорт Параметры = ЮТКоллекции.ЗначениеВМассиве(ИсполняемыеМодули); - ВызватьОбработчикРасширения("ПередВыполнениемТестов", Параметры); + ВызватьПодключаемыйОбработчикСобытия("ПередВыполнениемТестов", "ИсполнениеТестов", Параметры); КонецПроцедуры @@ -138,7 +178,7 @@ Процедура ПослеВыполненияТестов(РезультатТестирования) Экспорт Параметры = ЮТКоллекции.ЗначениеВМассиве(РезультатТестирования); - ВызватьОбработчикРасширения("ПослеВыполненияТестов", Параметры); + ВызватьПодключаемыйОбработчикСобытия("ПослеВыполненияТестов", "ИсполнениеТестов", Параметры); КонецПроцедуры @@ -147,21 +187,24 @@ #Область СобытияЗагрузкиТестов // Обработка события "ПередЧтениеСценариев" +// Вызывается перед загрузкой тестов. Процедура ПередЧтениеСценариев() Экспорт Параметры = Новый Массив(); - ВызватьОбработчикРасширения("ПередЧтениеСценариев", Параметры); + ВызватьПодключаемыйОбработчикСобытия("ПередЧтениеСценариев", "ЗагрузкаТестов", Параметры); КонецПроцедуры // Обработчик события "ПередЧтениемСценариевМодуля" -// Позволяет настроить базовые параметры перед чтением настроек тестов модуля +// Вызывается перед чтением сценариев конкретного модуля (вызовом метода `ИсполняемыеСценарии`). +// Позволяет настроить базовые параметры перед чтением настроек тестов модуля. +// // Параметры: // МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМодуля Процедура ПередЧтениемСценариевМодуля(МетаданныеМодуля) Экспорт Параметры = ЮТКоллекции.ЗначениеВМассиве(МетаданныеМодуля); - ВызватьОбработчикРасширения("ПередЧтениемСценариевМодуля", Параметры); + ВызватьПодключаемыйОбработчикСобытия("ПередЧтениемСценариевМодуля", "ЗагрузкаТестов", Параметры); КонецПроцедуры @@ -169,11 +212,11 @@ // Позволяет настроить/обработать параметры загруженных настроек тестов модуля // Параметры: // МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМодуля -// ИсполняемыеСценарии - см. ЮТТесты.СценарииМодуля +// ИсполняемыеСценарии - см. ЮТТестыСлужебный.СценарииМодуля Процедура ПослеЧтенияСценариевМодуля(МетаданныеМодуля, ИсполняемыеСценарии) Экспорт Параметры = ЮТКоллекции.ЗначениеВМассиве(МетаданныеМодуля, ИсполняемыеСценарии); - ВызватьОбработчикРасширения("ПослеЧтенияСценариевМодуля", Параметры); + ВызватьПодключаемыйОбработчикСобытия("ПослеЧтенияСценариевМодуля", "ЗагрузкаТестов", Параметры); КонецПроцедуры @@ -183,7 +226,7 @@ Процедура ПослеЧтенияСценариев(Сценарии) Экспорт Параметры = ЮТКоллекции.ЗначениеВМассиве(Сценарии); - ВызватьОбработчикРасширения("ПослеЧтенияСценариев", Параметры); + ВызватьПодключаемыйОбработчикСобытия("ПослеЧтенияСценариев", "ЗагрузкаТестов", Параметры); КонецПроцедуры @@ -193,7 +236,7 @@ Процедура ПослеФормированияИсполняемыхНаборовТестов(ИсполняемыеТестовыеМодули) Экспорт Параметры = ЮТКоллекции.ЗначениеВМассиве(ИсполняемыеТестовыеМодули); - ВызватьОбработчикРасширения("ПослеФормированияИсполняемыхНаборовТестов", Параметры); + ВызватьПодключаемыйОбработчикСобытия("ПослеФормированияИсполняемыхНаборовТестов", "ЗагрузкаТестов", Параметры); КонецПроцедуры @@ -224,50 +267,51 @@ КонецПроцедуры -Процедура ВызватьОбработкуСобытий(События, ОписаниеСобытия) +Процедура ВызватьОбработкуСобытийИсполненияТестов(События, ОписаниеСобытия) Для ы = 0 По События.ВГраница() Цикл + ИмяСобытия = События[ы]; ПропуститьОбработчикТестовогоМодуля = (ы > 0 И ОбработчикСобытияПереопределен(ИмяСобытия)); + Если ПропуститьОбработчикТестовогоМодуля Тогда - Параметры = ЮТКоллекции.ЗначениеВМассиве(ОписаниеСобытия); - Ошибки = ВызватьОбработчикРасширения(ИмяСобытия, Параметры); + Ошибки = ВызватьПодключаемыйОбработчикСобытия(ИмяСобытия, "ИсполнениеТестов", Параметры); ЗарегистрироватьОшибкиСобытияИсполнения(ИмяСобытия, ОписаниеСобытия, Ошибки); - Иначе - - ВызватьОбработкуСобытия(ИмяСобытия, ОписаниеСобытия); - + ВызватьОбработкуСобытияИсполненияТестов(ИмяСобытия, ОписаниеСобытия); КонецЕсли; + КонецЦикла; КонецПроцедуры -Процедура ВызватьОбработкуСобытия(ИмяСобытия, ОписаниеСобытия) +Процедура ВызватьОбработкуСобытияИсполненияТестов(ИмяСобытия, ОписаниеСобытия) Параметры = ЮТКоллекции.ЗначениеВМассиве(ОписаниеСобытия); Если ЭтоСобытиеПеред(ИмяСобытия) Тогда - Ошибки = ВызватьОбработчикРасширения(ИмяСобытия, Параметры); + Ошибки = ВызватьПодключаемыйОбработчикСобытия(ИмяСобытия, "ИсполнениеТестов", Параметры); ВызватьОбработчикТестовогоМодуля(ИмяСобытия, ОписаниеСобытия); Иначе ВызватьОбработчикТестовогоМодуля(ИмяСобытия, ОписаниеСобытия); - Ошибки = ВызватьОбработчикРасширения(ИмяСобытия, Параметры); + Ошибки = ВызватьПодключаемыйОбработчикСобытия(ИмяСобытия, "ИсполнениеТестов", Параметры); КонецЕсли; ЗарегистрироватьОшибкиСобытияИсполнения(ИмяСобытия, ОписаниеСобытия, Ошибки); КонецПроцедуры -Функция ВызватьОбработчикРасширения(ИмяСобытия, ПараметрыСобытия) +Функция ВызватьПодключаемыйОбработчикСобытия(ИмяСобытия, Подсистема, ПараметрыСобытия) Ошибки = Новый Массив(); - Для Каждого ИмяМодуля Из ЮТРасширенияСлужебный.ОбработчикиСобытий() Цикл + Для Каждого ИмяМодуля Из ЮТПодключаемыеМодулиСлужебный.ОбработчикиСобытий(Подсистема) Цикл Если ЮТМетодыСлужебный.МетодМодуляСуществует(ИмяМодуля, ИмяСобытия) Тогда ПолноеИмяМетода = СтрШаблон("%1.%2", ИмяМодуля, ИмяСобытия); + + ЮТЛогирование.Отладка(СтрШаблон("Обработка события `%1` - `%2`", ИмяСобытия, ПолноеИмяМетода)); Ошибка = ЮТМетодыСлужебный.ВыполнитьМетод(ПолноеИмяМетода, ПараметрыСобытия); Если Ошибка <> Неопределено Тогда @@ -306,6 +350,7 @@ Команда = СтрШаблон("%1.%2()", ИмяМодуля, ИмяСобытия); Если ЮТМетодыСлужебный.МетодМодуляСуществует(ИмяМодуля, ИмяСобытия) Тогда + ЮТЛогирование.Отладка(СтрШаблон("Обработка события `%1` - `%2`", ИмяСобытия, Команда)); Ошибка = ЮТМетодыСлужебный.ВыполнитьМетод(Команда); Если Ошибка <> Неопределено Тогда diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" index d0a526862..cff826070 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\241\321\202\321\200\320\276\320\272\320\270/Module.bsl" @@ -18,16 +18,24 @@ #Область ПрограммныйИнтерфейс -// Конкатенирует строки, разделяя их разделителем +// Объединяет две строки с помощью указанного разделителя. +// +// Ограничения: +// - Метод не изменяет исходную и дополнительную строки, а создает новую строку на их основе. // // Параметры: -// ИсходнаяСтрока - Строка - Исходная строка -// ДополнительнаяСтрока - Строка - Добавляемая строка -// Разделитель - Строка - Строка разделитель, любой набор символов - разделитель между подстроками -// +// ИсходнаяСтрока - Строка - Строка, к которой будет добавлена дополнительная строка. +// ДополнительнаяСтрока - Строка - Строка, которую нужно добавить к исходной строке. +// Разделитель - Строка - Символ или набор символов, используемых для разделения исходной и дополнительной строк. По умолчанию используется точка с запятой (";"). +// // Возвращаемое значение: -// Строка - Результат конкатенации строк +// Строка - Новая строка, образованная объединением исходной и дополнительной строк с помощью указанного разделителя. Если дополнительная строка пустая, то возвращается исходная строка. Если исходная строка пустая, а дополнительная нет, то возвращается дополнительная строка. // +// Пример: +// ИсходнаяСтрока = "Привет"; +// ДополнительнаяСтрока = "Мир"; +// Разделитель = " "; +// Результат = ДобавитьСтроку(ИсходнаяСтрока, ДополнительнаяСтрока, Разделитель); // Результат будет равен "Привет Мир". Функция ДобавитьСтроку(ИсходнаяСтрока, ДополнительнаяСтрока, Разделитель = ";") Экспорт Если Не ПустаяСтрока(ДополнительнаяСтрока) Тогда @@ -44,18 +52,24 @@ КонецФункции -// Возвращает массив на основании строки. -// При этом: -// * отсекает незначащие символы, стоящие слева от первого значащего символа в строке, и пробелы, стоящие справа от последнего значащего символа в строке. -// * в отличии от `СтрРазделить` в качестве разделителля используется вся переданная строка, а не любой из символов входящий в нее. +// Разделяет строку на подстроки с помощью указанного разделителя. +// +// Ограничения: +// - Метод не изменяет исходную строку, а создает новый массив строк на ее основе. +// - В отличие от СтрРазделить, в качестве разделителя используется вся переданная строка, а не любой из символов, входящих в нее. +// - Отсекает незначащие символы, стоящие слева от первого значащего символа в строке, и пробелы, стоящие справа от последнего значащего символа в строке. // // Параметры: -// Значение - Строка - преобразуемая строка -// Разделитель - Строка - строка-разделитель -// +// Значение - Строка - Строка, которую нужно разделить на подстроки. +// Разделитель - Строка - Символ или набор символов, используемых для разделения строки на подстроки. По умолчанию используется точка с запятой (";"). +// // Возвращаемое значение: -// Массив Из Строка - массив строк +// Массив из Строка - Массив строк, содержащий подстроки, полученные в результате разделения исходной строки. Если исходная строка пустая, то возвращается пустой массив. // +// Пример: +// Значение = "Привет; Мир; Как дела?"; +// Разделитель = "; "; +// Результат = РазделитьСтроку(Значение, Разделитель); // Результат будет равен ["Привет", "Мир", "Как дела?"]. Функция РазделитьСтроку(Знач Значение, Разделитель = ";") Экспорт КодУниверсальногоРазделителя = 5855; @@ -72,68 +86,97 @@ КонецФункции -// Формирует строку из заданного количества повторяемых символов +// Создает строку, состоящую из указанного количества одинаковых символов. +// // Параметры: -// Символ - Строка - Повторяемый символ -// Количество - Число - Количество повторений -// +// Символ - Строка - Символ, из которого будет создана строка. +// Количество - Число - Количество символов в создаваемой строке. +// // Возвращаемое значение: -// Строка - Строка повторяемых символов +// Строка - Новая строка, состоящая из указанного количества одинаковых символов. +// +// Пример: +// Символ = "a"; +// Количество = 5; +// Результат = СтрокаСимволов(Символ, Количество); // Результат будет равен "aaaaa". Функция СтрокаСимволов(Символ, Количество) Экспорт Возврат СтрСоединить(Новый Массив(Количество + 1), Символ); КонецФункции -// Строка с символами русского алфавита -// +// Возвращает строку, содержащую все русские буквы в указанном регистре. +// // Параметры: -// НижнийРегистр - Булево - добавить символы в нижнем регистре -// ВерхнийРегистр - Булево - добавить символы в верхнем регистре -// +// НижнийРегистр - Булево - Если значение равно Истина, то в создаваемой строке будут использованы буквы в нижнем регистре. По умолчанию равно Истина. +// ВерхнийРегистр - Булево - Если значение равно Истина, то в создаваемой строке будут использованы буквы в верхнем регистре. По умолчанию равно Ложь. +// // Возвращаемое значение: -// Строка +// Строка - Новая строка, содержащая все русские буквы в указанном регистре. Если оба параметра НижнийРегистр и ВерхнийРегистр равны Истина, то в создаваемой строке будут использованы буквы в обоих регистрах. +// +// Пример: +// Результат = РусскиеБуквы(Истина, Ложь); // Результат будет равен "абвгдеёжзийклмнопрстуфхцчшщъыьэюя". +// Результат = РусскиеБуквы(Ложь, Истина); // Результат будет равен "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ". +// Результат = РусскиеБуквы(Истина, Истина); // Результат будет равен "абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ". Функция РусскиеБуквы(НижнийРегистр = Истина, ВерхнийРегистр = Ложь) Экспорт Возврат Буквы("абвгдеёжзийклмнопрстуфхцчшщъыьэюя", НижнийРегистр, ВерхнийРегистр); КонецФункции -// Строка с символами английского алфавита -// +// Возвращает строку, содержащую все английские буквы в указанном регистре. +// // Параметры: -// НижнийРегистр - Булево - добавить символы в нижнем регистре -// ВерхнийРегистр - Булево - добавить символы в верхнем регистре -// +// НижнийРегистр - Булево - Если значение равно Истина, то в создаваемой строке будут использованы буквы в нижнем регистре. По умолчанию равно Истина. +// ВерхнийРегистр - Булево - Если значение равно Истина, то в создаваемой строке будут использованы буквы в верхнем регистре. По умолчанию равно Ложь. +// // Возвращаемое значение: -// Строка +// Строка - Новая строка, содержащая все английские буквы в указанном регистре. Если оба параметра НижнийРегистр и ВерхнийРегистр равны Истина, то в создаваемой строке будут использованы буквы в обоих регистрах. +// +// Пример: +// Результат = АнглийскиеБуквы(Истина, Ложь); // Результат будет равен "abcdefghijklmnopqrstuvwxyz". +// Результат = АнглийскиеБуквы(Ложь, Истина); // Результат будет равен "ABCDEFGHIJKLMNOPQRSTUVWXYZ". +// Результат = АнглийскиеБуквы(Истина, Истина); // Результат будет равен "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ". Функция АнглийскиеБуквы(НижнийРегистр = Истина, ВерхнийРегистр = Ложь) Экспорт Возврат Буквы("abcdefghijklmnopqrstuvwxyz", НижнийРегистр, ВерхнийРегистр); КонецФункции -// Строка с числами -// +// Возвращает строку, содержащую все цифры. +// // Возвращаемое значение: -// Строка +// Строка - Новая строка, содержащая все цифры "1234567890". +// +// Пример: +// Результат = Цифры(); // Результат будет равен "1234567890". Функция Цифры() Экспорт Возврат "1234567890"; КонецФункции -// Выполняет сравнение версий -// +// Сравнивает две версии программного обеспечения. +// +// Ограничения: +// - Версии должны быть представлены в формате "X.X.X.X", где X - целое число. +// // Параметры: -// Версия1 - Строка -// Версия2 - Строка -// +// Версия1 - Строка - Первая версия для сравнения. +// Версия2 - Строка - Вторая версия для сравнения. +// // Возвращаемое значение: -// Число - Результат сравнения -// `-1` - Версия1 меньше Версия2 -// `0` - Версии равны -// `1` - Версия1 больше Версия2 +// Число - Результат сравнения версий. +// 1 - если Версия1 больше Версия2. +// 0 - если Версия1 равна Версия2; +// -1 - если Версия1 меньше Версия2; +// +// Пример: +// Результат = СравнитьВерсии("1.0.0", "1.1.0"); // Результат будет равен -1. +// Результат = СравнитьВерсии("1.1.0", "1.0.0"); // Результат будет равен 1. +// Результат = СравнитьВерсии("1.0.0", "1.0.0"); // Результат будет равен 0. +// Результат = СравнитьВерсии("1.2.3.4", "1.2.3"); // Результат будет равен 1. +// Результат = СравнитьВерсии("1.2.3", "1.2.3.4"); // Результат будет равен -1. Функция СравнитьВерсии(Версия1, Версия2) Экспорт ЧастиВерсия1 = СтрРазделить(Версия1, "."); @@ -167,6 +210,42 @@ КонецФункции +// Проверяет, что переданное значение является строковым представлением уникального идентификатора +// +// Параметры: +// Значение - Строка +// +// Возвращаемое значение: +// Булево +Функция ЭтоУникальныйИдентификаторСтрокой(Значение) Экспорт + + Если ТипЗнч(Значение) <> Тип("Строка") Тогда + Возврат Ложь; + КонецЕсли; + + Шаблон = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"; + + Если СтрДлина(Шаблон) <> СтрДлина(Значение) Тогда + Возврат Ложь; + КонецЕсли; + + Для Позиция = 1 По СтрДлина(Значение) Цикл + КодСимволаШаблона = КодСимвола(Шаблон, Позиция); + КодСимволаЗначения = КодСимвола(Значение, Позиция); + + Если КодСимволаШаблона = 88 // X + И ((КодСимволаЗначения < 48 ИЛИ КодСимволаЗначения > 57) // 0..9 + И (КодСимволаЗначения < 97 ИЛИ КодСимволаЗначения > 102) // a..f + И (КодСимволаЗначения < 65 ИЛИ КодСимволаЗначения > 70)) // A..F + ИЛИ КодСимволаШаблона = 45 И КодСимволаЗначения <> 45 Тогда // - + Возврат Ложь; + КонецЕсли; + КонецЦикла; + + Возврат Истина; + +КонецФункции + #КонецОбласти #Область СлужебныеПроцедурыИФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" index 443ad1ae4..65b7b5d3a 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" @@ -107,15 +107,23 @@ #Область ГенерацияСлучайныхЗначений -// Генерирует и возвращает случайное число. -// +// Возвращает случайное число в указанном диапазоне. +// +// Ограничения: +// - Метод недоступен в веб-клиенте. +// // Параметры: -// Минимум - Неопределено, Число - Минимальное значение -// Максимум - Неопределено, Число - Максимальное значение -// ЗнаковПослеЗапятой - Число - Количество знаков после запятой -// +// Минимум - Число - Минимальное значение диапазона. По умолчанию равно 0. +// Максимум - Число - Максимальное значение диапазона. Если значение не указано, то будет использовано максимальное значение для целых чисел. +// ЗнаковПослеЗапятой - Число - Количество знаков после запятой для случайного числа. По умолчанию равно 0. +// // Возвращаемое значение: -// Число - Случайное число +// Число - Случайное число в указанном диапазоне. +// +// Пример: +// Результат = СлучайноеЧисло(); // Результат будет содержать случайное целое число от 0 до максимального значения для целых чисел. +// Результат = СлучайноеЧисло(1, 10); // Результат будет содержать случайное целое число от 1 до 10. +// Результат = СлучайноеЧисло(1, 10, 2); // Результат будет содержать случайное число от 1 до 10 с двумя знаками после запятой. Функция СлучайноеЧисло(Минимум = 0, Максимум = Неопределено, ЗнаковПослеЗапятой = 0) Экспорт #Если ВебКлиент Тогда @@ -144,47 +152,73 @@ КонецФункции -// Генерирует и возвращает случайное положительное число. -// +// Возвращает случайное положительное число в указанном диапазоне. +// +// Ограничения: +// - Метод недоступен в веб-клиенте. +// // Параметры: -// Максимум - Неопределено, Число - Максимальное значение -// ЗнаковПослеЗапятой - Число - Знаков после запятой -// +// Максимум - Число - Максимальное значение диапазона. Если значение не указано, то будет использовано максимальное значение для целых чисел. +// ЗнаковПослеЗапятой - Число - Количество знаков после запятой для случайного числа. По умолчанию равно 0. +// // Возвращаемое значение: -// Число - Случайное положительное число +// Число - Случайное положительное число в указанном диапазоне. +// +// Пример: +// Результат = СлучайноеПоложительноеЧисло(); // Результат будет содержать случайное целое положительное число от 1 до максимального значения для целых чисел. +// Результат = СлучайноеПоложительноеЧисло(10); // Результат будет содержать случайное целое положительное число от 1 до 10. +// Результат = СлучайноеПоложительноеЧисло(10, 2); // Результат будет содержать случайное положительное число от 1 до 10 с двумя знаками после запятой. Функция СлучайноеПоложительноеЧисло(Максимум = Неопределено, ЗнаковПослеЗапятой = 0) Экспорт Возврат СлучайноеЧисло(1, Максимум, ЗнаковПослеЗапятой); КонецФункции -// Генерирует и возвращает случайное отрицательное число. -// +// Возвращает случайное отрицательное число в указанном диапазоне. +// +// Ограничения: +// - Метод недоступен в веб-клиенте. +// // Параметры: -// Минимум - Неопределено, Число - Минимальное значение -// ЗнаковПослеЗапятой - Число - Знаков после запятой -// +// Минимум - Число - Минимальное значение диапазона. Если значение не указано, то будет использовано минимальное значение для целых чисел. +// ЗнаковПослеЗапятой - Число - Количество знаков после запятой для случайного числа. По умолчанию равно 0. +// // Возвращаемое значение: -// Число - Случайное отрицательное число +// Число - Случайное отрицательное число в указанном диапазоне. +// +// Пример: +// Результат = СлучайноеОтрицательноеЧисло(); // Результат будет содержать случайное целое отрицательное число от минимального значения для целых чисел до -1. +// Результат = СлучайноеОтрицательноеЧисло(-10); // Результат будет содержать случайное целое отрицательное число от -10 до -1. +// Результат = СлучайноеОтрицательноеЧисло(-10, 2); // Результат будет содержать случайное отрицательное число от -10 до -1 с двумя знаками после запятой. Функция СлучайноеОтрицательноеЧисло(Знач Минимум = Неопределено, ЗнаковПослеЗапятой = 0) Экспорт Если Минимум <> Неопределено Тогда Минимум = -Минимум; КонецЕсли; - Возврат -СлучайноеЧисло(0, Минимум, ЗнаковПослеЗапятой); + Возврат -СлучайноеЧисло(1, Минимум, ЗнаковПослеЗапятой); КонецФункции -// Генерирует и возвращает случайную строку указанной длины, строка может содержать цифры, английские и русские буквы в разных регистрах. -// +// Возвращает случайную строку указанной длины, состоящую из допустимых символов. +// +// Ограничения: +// - Метод недоступен в веб-клиенте. +// // Параметры: -// Длина - Число - Длина генерируемой строки с учетом префикса -// Префикс - Строка - Префикс строки -// ДопустимыеСимволы - Строка - Допустимые символы из которая будет формироваться случайная строка -// +// Длина - Число - Длина возвращаемой строки. По умолчанию равно 10. +// Префикс - Строка - Префикс, который будет добавлен к началу возвращаемой строки. По умолчанию равно пустой строке. +// ДопустимыеСимволы - Строка - Строка, содержащая допустимые символы для генерации строки. +// Если значение не указано, то будут использованы все русские и английские буквы в верхнем и нижнем регистре, +// а также цифры. +// // Возвращаемое значение: -// Строка - Случайная строка +// Строка - Случайная строка указанной длины, состоящая из допустимых символов. +// +// Пример: +// Результат = СлучайнаяСтрока(); // Результат будет содержать случайную строку длиной 10 символов +// Результат = СлучайнаяСтрока(5, "Привет "); // Результат будет содержать строку "Привет " и случайную строку длиной 5 символов +// Результат = СлучайнаяСтрока(10, "", "abcdefghijklmnopqrstuvwxyz"); // Результат будет содержать случайную строку длиной 10 символов Функция СлучайнаяСтрока(Знач Длина = 10, Префикс = "", Знач ДопустимыеСимволы = Неопределено) Экспорт Если ДопустимыеСимволы = Неопределено Тогда @@ -206,14 +240,22 @@ КонецФункции -// Возвращяет случайный валидный идентификатор -// +// Возвращает случайный идентификатор указанной длины, состоящий из букв и цифр. +// +// Ограничения: +// - Метод недоступен в веб-клиенте. +// // Параметры: -// Длина - Число - Длина генерируемой строки с учетом префикса -// Префикс - Строка - Префикс строки -// +// Длина - Число - Длина возвращаемого идентификатора. По умолчанию равно 10. +// Префикс - Строка - Префикс, который будет добавлен к началу возвращаемого идентификатора. По умолчанию равно пустой строке. +// // Возвращаемое значение: -// Строка - Случайный идентификатор +// Строка - Случайный идентификатор указанной длины, состоящий из букв и цифр. +// +// Пример: +// Результат = СлучайныйИдентификатор(); // Результат будет содержать случайный идентификатор длиной 10 символов +// Результат = СлучайныйИдентификатор(5, "Привет "); // Результат будет содержать строку "Привет " и случайный идентификатор длиной 5 символов +// Результат = СлучайныйИдентификатор(10, "ID_"); // Результат будет содержать строку "ID_" и случайный идентификатор длиной 10 символов Функция СлучайныйИдентификатор(Знач Длина = 10, Знач Префикс = "") Экспорт НаборСимволов = "_" + ЮТСтроки.РусскиеБуквы(Истина, Истина) + ЮТСтроки.АнглийскиеБуквы(Истина, Истина); @@ -228,16 +270,23 @@ КонецФункции -// Генерирует и возвращает случайную дату в указанном интервале (если не указан используется `0001-01-01 - 3999-12-31`). -// +// Возвращает случайную дату в указанном диапазоне. +// +// Ограничения: +// - Метод недоступен в веб-клиенте. +// // Параметры: -// Минимум - Дата - Минимальное значение случайной даты -// - Неопределено - Если не указано используется `0001-01-01` -// Максимум - Дата - Максимальное значение случайной даты -// - Неопределено - Если не указано используется `3999-12-31` -// +// Минимум - Дата - Минимальное значение диапазона. По умолчанию равно 01.01.0001. +// Максимум - Дата - Максимальное значение диапазона. По умолчанию равно 31.12.3999. +// // Возвращаемое значение: -// Дата - Случайная дата +// Дата - Случайная дата в указанном диапазоне. +// +// Пример: +// Результат = СлучайнаяДата(); // Результат будет содержать случайную дату в диапазоне от 01.01.0001 до 31.12.3999. +// Результат = СлучайнаяДата('01.01.2022', '31.12.2022'); // Результат будет содержать случайную дату в диапазоне от 01.01.2022 до 31.12.2022. +// Результат = СлучайнаяДата('01.01.2022', '01.01.2022'); // Результат будет содержать дату 01.01.2022. +// Результат = СлучайнаяДата('01.01.2022', '01.01.2021'); // Вызовет исключение "Некорректные параметры метода 'СлучайнаяДата': максимальное значение должно быть больше минимального". Функция СлучайнаяДата(Знач Минимум = '00010101', Знач Максимум = '39991231') Экспорт Если Минимум = Максимум Тогда @@ -259,8 +308,11 @@ КонецФункции -// Генерирует случайное время -// +// Возвращает случайное время в формате "Время". +// +// Ограничения: +// - Метод недоступен в веб-клиенте. +// // Возвращаемое значение: // Дата - Случайное время Функция СлучайноеВремя() Экспорт @@ -271,21 +323,28 @@ КонецФункции -// Генерирует случайную дату в будущем. -// Максимальное значение генерируемой даты можно ограничить параметрами. -// Например: СлучайнаяДатаВБудущем(2, "часа") - будет сформирована дата в интервале (ТекущаяДата, ТекущаяДата + 2 часа] -// +// Возвращает случайную дату в будущем, начиная с текущей даты и с учетом указанного интервала. +// +// Ограничения: +// - Метод недоступен в веб-клиенте. +// // Параметры: -// Интервал - Число - Интервал -// ТипИнтервала - Строка - Строковое представление интервала времени, возможные значения +// Интервал - Число - Значение интервала, который будет использован для генерации случайной даты. По умолчанию равно неопределенному значению. +// ТипИнтервала - Строка - Тип интервала, который будет использован для генерации случайной даты. Возможные значения // * секунда, секунды, секунд // * минута, минуты, минут // * час, часа, часов // * день, дня, дней // * месяц, месяца, месяцев -// +// // Возвращаемое значение: -// Дата - Случайная дата в будущем +// Дата - Случайная дата в будущем, начиная с текущей даты и с учетом указанного интервала. +// +// Пример: +// Результат = СлучайнаяДатаВБудущем(30, "дней"); // Результат будет содержать случайную дату в будущем, начиная с текущей даты и с учетом интервала в 30 дней. +// Результат = СлучайнаяДатаВБудущем(1, "месяца"); // Результат будет содержать случайную дату в будущем, начиная с текущей даты и с учетом интервала в 1 месяц. +// Результат = СлучайнаяДатаВБудущем(1, "года"); // Результат будет содержать случайную дату в будущем, начиная с текущей даты и с учетом интервала в 1 год. +// Результат = СлучайнаяДатаВБудущем(); // Результат будет содержать случайную дату в будущем, начиная с текущей даты. Функция СлучайнаяДатаВБудущем(Интервал = Неопределено, ТипИнтервала = Неопределено) Экспорт //@skip-check use-non-recommended-method @@ -293,21 +352,28 @@ КонецФункции -// Генерирует случайную дату в прошлом. -// Минимальное значение генерируемой даты можно ограничить параметрами. -// Например: СлучайнаяДатаВПрошлом(2, "часа") - будет сформирована дата в интервале [ТекущаяДата - 2 часа, ТекущаяДата) -// +// Возвращает случайную дату в прошлом, начиная с текущей даты и с учетом указанного интервала. +// +// Ограничения: +// - Метод недоступен в веб-клиенте. +// // Параметры: -// Интервал - Число - Интервал -// ТипИнтервала - Строка - Строковое представление интервала времени, возможные значения +// Интервал - Число - Значение интервала, который будет использован для генерации случайной даты. По умолчанию равно неопределенному значению. +// ТипИнтервала - Строка - Тип интервала, который будет использован для генерации случайной даты. Возможные значения // * секунда, секунды, секунд // * минута, минуты, минут // * час, часа, часов // * день, дня, дней // * месяц, месяца, месяцев -// +// // Возвращаемое значение: -// Дата - Случайная дата в прошлом +// Дата - Случайная дата в прошлом, начиная с текущей даты и с учетом указанного интервала. +// +// Пример: +// Результат = СлучайнаяДатаВПрошлом(30, "дней"); // Результат будет содержать случайную дату в прошлом, начиная с текущей даты и с учетом интервала в 30 дней. +// Результат = СлучайнаяДатаВПрошлом(1, "месяца"); // Результат будет содержать случайную дату в прошлом, начиная с текущей даты и с учетом интервала в 1 месяц. +// Результат = СлучайнаяДатаВПрошлом(1, "года"); // Результат будет содержать случайную дату в прошлом, начиная с текущей даты и с учетом интервала в 1 год. +// Результат = СлучайнаяДатаВПрошлом(); // Результат будет содержать случайную дату в прошлом, начиная с текущей даты. Функция СлучайнаяДатаВПрошлом(Интервал = Неопределено, ТипИнтервала = Неопределено) Экспорт //@skip-check use-non-recommended-method @@ -315,22 +381,28 @@ КонецФункции -// Генерирует случайную дату, значение которой больше указанной. -// Максимальное значение генерируемой даты можно ограничить параметрами. -// Например: СлучайнаяДатаПосле(Дата, 2, "часа") - будет сформирована дата в интервале [Дата - 2 часа, Дата) -// +// Возвращает случайную дату после указанной даты и с учетом указанного интервала. +// +// Ограничения: +// - Метод недоступен в веб-клиенте. +// // Параметры: -// Дата - Дата -// Интервал - Число - Интервал -// ТипИнтервала - Строка - Строковое представление интервала времени, возможные значения +// Дата - Дата - Начальная дата для генерации случайной даты. +// Интервал - Число - Значение интервала, который будет использован для генерации случайной даты. По умолчанию равно неопределенному значению. +// ТипИнтервала - Строка - Тип интервала, который будет использован для генерации случайной даты. Возможные значения // * секунда, секунды, секунд // * минута, минуты, минут // * час, часа, часов // * день, дня, дней // * месяц, месяца, месяцев -// // Возвращаемое значение: -// Дата +// Дата - Случайная дата после указанной даты и с учетом указанного интервала. +// +// Пример: +// Результат = СлучайнаяДатаПосле('01.01.2022', 30, "дней"); // Результат будет содержать случайную дату после 01.01.2022 и с учетом интервала в 30 дней. +// Результат = СлучайнаяДатаПосле('01.01.2022', 1, "месяца"); // Результат будет содержать случайную дату после 01.01.2022 и с учетом интервала в 1 месяц. +// Результат = СлучайнаяДатаПосле('01.01.2022', 1, "года"); // Результат будет содержать случайную дату после 01.01.2022 и с учетом интервала в 1 год. +// Результат = СлучайнаяДатаПосле('01.01.2022'); // Результат будет содержать случайную дату после 01.01.2022. Функция СлучайнаяДатаПосле(Дата, Интервал = Неопределено, ТипИнтервала = Неопределено) Экспорт ИнтервалНеУказан = Интервал = Неопределено И ТипИнтервала = Неопределено; @@ -345,22 +417,29 @@ КонецФункции -// Генерирует случайную дату, значение которой меньше указанной. -// Минимальное значение генерируемой даты можно ограничить параметрами. -// Например: СлучайнаяДатаПосле(Дата, 2, "часа") - будет сформирована дата в интервале [Дата - 2 часа, Дата) -// +// Возвращает случайную дату до указанной даты и с учетом указанного интервала. +// +// Ограничения: +// - Метод недоступен в веб-клиенте. +// // Параметры: -// Дата - Дата -// Интервал - Число - Интервал -// ТипИнтервала - Строка - Строковое представление интервала времени, возможные значения +// Дата - Дата - Конечная дата для генерации случайной даты. +// Интервал - Число - Значение интервала, который будет использован для генерации случайной даты. По умолчанию равно неопределенному значению. +// ТипИнтервала - Строка - Тип интервала, который будет использован для генерации случайной даты. Возможные значения // * секунда, секунды, секунд // * минута, минуты, минут // * час, часа, часов // * день, дня, дней // * месяц, месяца, месяцев -// +// // Возвращаемое значение: -// Дата +// Дата - Случайная дата до указанной даты и с учетом указанного интервала. +// +// Пример: +// Результат = СлучайнаяДатаДо('01.01.2022', 30, "дней"); // Результат будет содержать случайную дату до 01.01.2022 и с учетом интервала в 30 дней. +// Результат = СлучайнаяДатаДо('01.01.2022', 1, "месяца"); // Результат будет содержать случайную дату до 01.01.2022 и с учетом интервала в 1 месяц. +// Результат = СлучайнаяДатаДо('01.01.2022', 1, "года"); // Результат будет содержать случайную дату до 01.01.2022 и с учетом интервала в 1 год. +// Результат = СлучайнаяДатаДо('01.01.2022'); // Результат будет содержать случайную дату до 01.01.2022. Функция СлучайнаяДатаДо(Дата, Интервал = Неопределено, ТипИнтервала = Неопределено) Экспорт ИнтервалНеУказан = Интервал = Неопределено И ТипИнтервала = Неопределено; @@ -375,10 +454,16 @@ КонецФункции -// Генерирует и возвращает случайный IP адрес. -// +// Возвращает случайный IP-адрес. +// +// Ограничения: +// - Метод недоступен в веб-клиенте. +// // Возвращаемое значение: -// Строка - Случайный IP адрес +// Строка - Случайный IP-адрес в формате "XXX.XXX.XXX.XXX". +// +// Пример: +// Результат = СлучайныйIPАдрес(); // Результат будет содержать случайный IP-адрес в формате "XXX.XXX.XXX.XXX". Функция СлучайныйIPАдрес() Экспорт Части = Новый Массив(); @@ -391,13 +476,20 @@ КонецФункции -// Возвращает случайный элемент списка. -// +// Возвращает случайное значение из указанного списка. +// +// Ограничения: +// - Метод недоступен в веб-клиенте. +// // Параметры: -// Список - Массив из Произвольный - Коллекция возможных значений -// +// Список - Массив из Произвольный - Список значений, из которых будет выбрано случайное значение. +// // Возвращаемое значение: -// Произвольный - случайное значение из списка +// Произвольный - Случайное значение из указанного списка. +// +// Пример: +// Список = Новый Массив("Аптека", "Магазин", "Кафе", "Ресторан"); +// Результат = СлучайноеЗначениеИзСписка(Список); // Результат будет содержать одно из значений из списка ("Аптека", "Магазин", "Кафе", "Ресторан"). Функция СлучайноеЗначениеИзСписка(Список) Экспорт Индекс = СлучайноеЧисло(0, Список.ВГраница()); @@ -406,24 +498,37 @@ КонецФункции -// Возвращает случайное логическое значение. -// +// Возвращает случайное булево значение (Истина или Ложь). +// +// Ограничения: +// - Метод недоступен в веб-клиенте. +// // Возвращаемое значение: -// Булево - Случайное булево +// Булево - Случайное булево значение (Истина или Ложь). +// +// Пример: +// Результат = СлучайноеБулево(); // Результат будет содержать одно из значений: Истина или Ложь. Функция СлучайноеБулево() Экспорт Возврат СлучайноеЧисло() % 2 = 0; КонецФункции -// Возвращает случайное значение перечисления -// +// Возвращает случайное значение перечисления. +// +// Ограничения: +// - Метод недоступен в веб-клиенте. +// // Параметры: -// Перечисление - ПеречислениеМенеджер - Менеджер -// - Строка - Имя объекта метаданных +// Перечисление - ПеречислениеМенеджер - Менеджер перечисления. +// - Строка - мя объекта метаданных перечисления. // // Возвращаемое значение: -// ПеречислениеСсылка +// ПеречислениеСсылка - Случайное значение перечисления. +// +// Пример: +// Перечисление = Перечисления.Пол; +// Результат = СлучайноеЗначениеПеречисления(Перечисление); // Результат будет содержать одно из значений перечисления "Пол" (Мужской, Женский). Функция СлучайноеЗначениеПеречисления(Перечисление) Экспорт Возврат ЮТТестовыеДанныеСлужебныйВызовСервера.СлучайноеЗначениеПеречисления(Перечисление); @@ -438,20 +543,34 @@ // Отбор - Структура, Соответствие из Произвольный - Отбора поиска предопределенных значений (сравнение на равенство) // // Возвращаемое значение: -// ПеречислениеСсылка +// СправочникСсылка - Случайное предопределенное значение объекта конфигурации. +// +// Пример: +// Менеджер = "Справочники.ВидыЦен"; +// Отбор = Новый Соответствие; +// Отбор.Вставить("ПометкаУдаления", "Ложь"); +// Результат = СлучайноеПредопределенноеЗначение(Менеджер, Отбор); // Результат будет содержать одно из предопределенных значений +// // объекта конфигурации "ВидыЦен" непомеченное на удаление". Функция СлучайноеПредопределенноеЗначение(Менеджер, Отбор = Неопределено) Экспорт Возврат ЮТТестовыеДанныеСлужебныйВызовСервера.СлучайноеПредопределенноеЗначение(Менеджер, Отбор); КонецФункции -// Возвращает случайный номер телефона. -// +// Возвращает случайный номер телефона в формате "+КодСтраны(XXX)XXX-XX-XX". +// +// Ограничения: +// - Метод недоступен в веб-клиенте. +// // Параметры: -// КодСтраны - Строка - Код страны, с которого будет начинаться номер. -// +// КодСтраны - Строка - Код страны по умолчанию "7". +// // Возвращаемое значение: -// Строка - Сгенерированный номер телефона. +// Строка - Случайный номер телефона в формате "+КодСтраны(XXX)XXX-XX-XX". +// +// Пример: +// Результат = СлучайныйНомерТелефона(); // Результат будет содержать случайный номер телефона в формате "+7(XXX)XXX-XX-XX". +// Результат = СлучайныйНомерТелефона("666"); // Результат будет содержать случайный номер телефона в формате "+666(XXX)XXX-XX-XX". Функция СлучайныйНомерТелефона(КодСтраны = "7") Экспорт Результат = СтрШаблон( "+%1(%2)%3-%4-%5", @@ -463,17 +582,25 @@ ); Возврат Результат; + КонецФункции #КонецОбласти -// Генерирует и возвращает уникальную строку, формируется из уникального идентификатора. -// +// Возвращает уникальную строку на основе префикса и уникального идентификатора. +// +// Ограничения: +// - Метод недоступен в веб-клиенте. +// // Параметры: -// Префикс - Строка - Префикс строки -// +// Префикс - Строка - Префикс уникальной строки. По умолчанию равно пустой строке. +// // Возвращаемое значение: -// Строка - Уникальная строка +// Строка - Уникальная строка на основе префикса и уникального идентификатора. +// +// Пример: +// Результат = УникальнаяСтрока(); // Результат будет содержать уникальную строку на основе уникального идентификатора. +// Результат = УникальнаяСтрока("Префикс_"); // Результат будет содержать уникальную строку на основе префикса "Префикс_" и уникального идентификатора. Функция УникальнаяСтрока(Префикс = "") Экспорт Возврат Префикс + Новый УникальныйИдентификатор(); @@ -482,15 +609,18 @@ #Если Не ВебКлиент Тогда -// Создает новый файл, который будет удален после теста -// +// Возвращает путь к созданному временному файлу с указанным содержимым и расширением. +// // Параметры: -// Содержимое - Строка, Неопределено - Содержимое файла -// ТолькоЧтение - Булево - Установить атрибут `только чтение` -// Расширение - Строка, Неопределено - Расширение нового файла -// +// Содержимое - Неопределено, Строка - Содержимое файла. +// ТолькоЧтение - Булево - Если значение равно Истина, то файл будет создан в режиме только для чтения. По умолчанию равно Ложь. +// Расширение - Неопределено, Строка - Расширение файла. +// // Возвращаемое значение: -// Строка - Новый файл +// Строка - Путь к новому временному файлу с указанным содержимым и расширением. +// +// Пример: +// Результат = НовыйФайл("Содержимое файла"); // Результат будет содержать путь к новому временному файлу с содержимым "Содержимое файла". Функция НовыйФайл(Содержимое = Неопределено, ТолькоЧтение = Ложь, Расширение = Неопределено) Экспорт Результат = НовоеИмяВременногоФайла(Расширение); @@ -512,27 +642,37 @@ КонецФункции -// Возвращает имя нового файла. -// По окончании выполнения теста этот файл будет удален. -// +// Возвращает уникальное имя временного файла с указанным расширением. +// // Параметры: -// Расширение - Строка - Расширение нового файла -// +// Расширение - Неопределено, Строка - Расширение файла. +// // Возвращаемое значение: -// Строка +// Строка - Уникальное имя временного файла с указанным расширением. +// +// Пример: +// Результат = НовоеИмяВременногоФайла("txt"); // Результат будет содержать уникальное имя временного файла с расширением "txt". +// Результат = НовоеИмяВременногоФайла(); // Результат будет содержать уникальное имя временного файла без расширения. Функция НовоеИмяВременногоФайла(Расширение = Неопределено) Экспорт Возврат ЮТТестовыеДанныеСлужебный.НовоеИмяВременногоФайла(Расширение); КонецФункции -// Читает таблицу MarkDown в массив структур -// +// Возвращает массив структур, содержащих данные из таблицы Markdown. +// // Параметры: -// Строки - Строка - Таблица markdown -// +// Строки - Строка - Строка в формате Markdown, содержащая таблицу. +// // Возвращаемое значение: -// Массив из Структура - Данные таблицы markdown +// Массив из Структура - Массив структур, содержащих данные из таблицы Markdown. +// +// Пример: +// Строки = "| Заголовок1 | Заголовок2 | +// || --- | --- | +// || Значение 1 | Значение 2 | +// || Значение 3 | Значение 4 |"; +// Результат = ТаблицаMarkDown(Строки); // Результат будет содержать массив структур(Заголовок1, Заголовок2), содержащих данные из таблицы Markdown. Функция ТаблицаMarkDown(Строки) Экспорт ЗагрузилиЗаголовок = Ложь; @@ -596,14 +736,24 @@ КонецФункции -// Формирует структуру на основании таблицы Markdown -// +// Возвращает структуру, содержащую данные из таблицы Markdown, где ключом является значение указанного столбца. +// +// Ограничения: +// - Метод недоступен в веб-клиенте. +// // Параметры: -// Ключ - Строка - Имя ключевой колонки -// Строки - Строка - Таблица markdown -// +// Ключ - Строка - Название столбца, значение которого будет использовано в качестве ключа в возвращаемой структуре. +// Строки - Строка - Строка в формате Markdown, содержащая таблицу. +// // Возвращаемое значение: -// Структура +// Структура - Структура, содержащая данные из таблицы Markdown, где ключом является значение указанного столбца. +// +// Пример: +// Строки = "| Заголовок1 | Заголовок2 | +// || --- | --- | +// || Значение 1 | Значение 2 | +// || Значение 3 | Значение 4 |"; +// Результат = СтруктураMarkDown("Заголовок1", Строки); // Результат будет содержать структуру, содержащую данные из таблицы Markdown, где ключом является значение столбца "Заголовок1". Функция СтруктураMarkDown(Ключ, Строки) Экспорт Таблица = ТаблицаMarkDown(Строки); @@ -620,7 +770,7 @@ #КонецЕсли -// Формирует массив различных комбиначий параметров +// Формирует массив различных комбинаций параметров // // Предназначено для формирования таблицы возможных значений параметров для краш теста метода. // @@ -643,29 +793,32 @@ КонецФункции -// Возвращает конструктор создания тестовых данных -// +// Возвращает конструктор создания тестовых данных для указанного объекта метаданных. +// // Конструктор имеет ряд особенностей: // -// * Нельзя использовать параллельно несколько конструкторов. -// Например -// -// ```bsl -// Пользователь = КонструкторОбъекта(Справочники.Пользователи); -// Документ = КонструкторОбъекта(Документы.Приход); -// ... -// Пользователь.Записать(); -// Документ.Провести(); -// ``` -// // * Создание объекта происходит при вызове методов `Записать` и `Провести`, а создание реквизитов происходит во время вызова методов установки. // * При использовании на клиенте все значения должны быть сериализуемыми. // // Параметры: -// Менеджер - Строка - Имя менеджера. Примеры: "Справочники.Товары", "Документы.ПриходТоваров" +// Менеджер - Строка - Имя менеджера объекта метаданных. Примеры: "Справочники.Товары", "Документы.ПриходТоваров". // - Произвольный - Менеджер объекта метаданных. Примеры: Справочники.Товары, Документы.ПриходТоваров +// // Возвращаемое значение: -// ОбработкаОбъект.ЮТКонструкторТестовыхДанных +// ОбработкаОбъект.ЮТКонструкторТестовыхДанных - Конструктор создания тестовых данных для указанного объекта метаданных. +// +// Пример: +// Конструктор = КонструкторОбъекта("Справочники.Товары"); +// Конструктор.Установить("Наименование", "Товар 1"); +// Конструктор.Установить("Цена", 100); +// Конструктор.Записать(); // Создает товар с наименованием "Товар 1" и ценой 100. +// +// Конструктор = КонструкторОбъекта(Документы.ПриходТоваров); +// Конструктор.Установить("Организация", Справочники.Организации.ПустаяСсылка()); +// Конструктор.Установить("Склад", Справочники.Склады.ПустаяСсылка()); +// Конструктор.Установить("Товар", Справочники.Товары.ПустаяСсылка()); +// Конструктор.Установить("Количество", 10); +// Конструктор.Провести(); // Создает документ прихода товаров с указанными реквизитами и проводит его. Функция КонструкторОбъекта(Менеджер) Экспорт Возврат ЮТКонструкторТестовыхДанныхСлужебный.Инициализировать(Менеджер); @@ -673,15 +826,28 @@ КонецФункции #Если Сервер Или ТолстыйКлиентОбычноеПриложение Тогда -// Возвращает конструктор создания объекта XDTO -// +// Возвращает конструктор создания объекта XDTO. +// // Параметры: -// ИмяТипа - Строка - Имя типа объекта -// ПространствоИмен - Строка - Пространство имен типа -// Фабрика - ФабрикаXDTO - Используемая фабрика XDTO -// +// ИмяТипа - Строка - Имя типа объекта XDTO. +// ПространствоИмен - Строка - Пространство имен типа объекта XDTO. +// Фабрика - ФабрикаXDTO - Фабрика, используемая для создания объектов XDTO. По умолчанию используется стандартная фабрика XDTO. +// // Возвращаемое значение: -// ОбработкаОбъект.ЮТКонструкторОбъектаXDTO - Конструктор объекта XDTO +// ОбработкаОбъект.ЮТКонструкторОбъектаXDTO - Конструктор объекта XDTO. +// +// Пример: +// Конструктор = КонструкторОбъектаXDTO("Товар", "http://example.com/namespace", Новый ФабрикаXDTO()); +// Конструктор.Установить("Наименование", "Товар 1"); +// Конструктор.Установить("Цена", 100); +// Объект = Конструктор.ПолучитьОбъект(); // Создает объект XDTO с указанными реквизитами. +// +// Конструктор = КонструкторОбъектаXDTO("ДокументПриходТоваров", "http://example.com/namespace"); +// Конструктор.Установить("Организация", Справочники.Организации.ПустаяСсылка()); +// Конструктор.Установить("Склад", Справочники.Склады.ПустаяСсылка()); +// Конструктор.Установить("Товар", Справочники.Товары.ПустаяСсылка()); +// Конструктор.Установить("Количество", 10); +// Объект = Конструктор.ПолучитьОбъект(); // Создает объект XDTO с указанными реквизитами. Функция КонструкторОбъектаXDTO(ИмяТипа, ПространствоИмен, Фабрика = Неопределено) Экспорт Обработка = Обработки.ЮТКонструкторОбъектаXDTO.Создать(); @@ -695,13 +861,14 @@ // Удаляет переданные объекта // // Параметры: -// Ссылки - Массив из ЛюбаяСсылка -Процедура Удалить(Ссылки) Экспорт - +// Ссылки - Массив из ЛюбаяСсылка - Массив ссылок на объекты, которые необходимо удалить. +// Привилегированно - Булево - Выполнить удаление в привилегированном режиме (без учета прав на объекты) +Процедура Удалить(Ссылки, Привилегированно = Ложь) Экспорт + Если ЗначениеЗаполнено(Ссылки) Тогда - ЮТТестовыеДанныеСлужебныйВызовСервера.Удалить(Ссылки); + ЮТТестовыеДанныеСлужебныйВызовСервера.Удалить(Ссылки, Привилегированно); КонецЕсли; - + КонецПроцедуры // Возвращает объект подражателя для формирования осмысленных тестовых данных @@ -857,21 +1024,6 @@ КонецПроцедуры -Функция МножительПериода(ТипИнтервала) - - Множители = ЮТСлужебныйПовторногоИспользования.МножителиИнтервалов(); - Возврат Множители[ТипИнтервала]; - -КонецФункции - -Функция ЭтоМесяц(ТипИнтервала) - - Возврат СтрСравнить(ТипИнтервала, "месяц") = 0 - Или СтрСравнить(ТипИнтервала, "месяца") = 0 - Или СтрСравнить(ТипИнтервала, "месяцев") = 0; - -КонецФункции - Функция МаксимумГенератора() Возврат 4294967295; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 4c5690195..8b4727d26 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -111,7 +111,7 @@ ЮТФайлы.УдалитьВременныеФайлы(БуферВременныеФайлы()); Если ЮТНастройкиВыполнения.УдалениеТестовыхДанных() Тогда - ЮТТестовыеДанные.Удалить(БуферТестовыеДанные()); + ЮТТестовыеДанные.Удалить(БуферТестовыеДанные(), Истина); КонецЕсли; КонецПроцедуры diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" index 37f235a76..2b7f8529e 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -22,7 +22,8 @@ ПараметрыЗаписи = ПараметрыЗаписи(ПараметрыЗаписи); - Объект = НовыйОбъект(Менеджер, Данные, ПараметрыЗаписи.ДополнительныеСвойства); + Объект = НовыйОбъект(Менеджер, Данные, + ПараметрыЗаписи.ДополнительныеСвойства, ПараметрыЗаписи.УникальныйИдентификаторСсылки); КлючЗаписи = ЗаписатьОбъект(Объект, ПараметрыЗаписи); @@ -40,10 +41,14 @@ // Менеджер - Произвольный // Данные - Структура - Данные заполнения объекта // ДополнительныеСвойства - Структура - Дополнительные свойства объекта +// УникальныйИдентификаторСсылки - УникальныйИдентификатор - Уникальный идентификатор, который будет установлен в качестве ссылки для объекта // // Возвращаемое значение: // Произвольный - Созданный объект -Функция НовыйОбъект(Знач Менеджер, Знач Данные, Знач ДополнительныеСвойства = Неопределено) Экспорт +Функция НовыйОбъект(Знач Менеджер, + Знач Данные, + Знач ДополнительныеСвойства = Неопределено, + Знач УникальныйИдентификаторСсылки = Неопределено) Экспорт ОписаниеОбъектаМетаданных = ЮТМетаданные.ОписаниеОбъектаМетаданных(Менеджер); Менеджер = ЮТОбщий.Менеджер(ОписаниеОбъектаМетаданных); @@ -55,6 +60,11 @@ Если ДополнительныеСвойства <> Неопределено Тогда ЮТКоллекции.ДополнитьСтруктуру(Объект.ДополнительныеСвойства, ДополнительныеСвойства); КонецЕсли; + + Если УникальныйИдентификаторСсылки <> Неопределено И ОписаниеОбъектаМетаданных.ОписаниеТипа.Ссылочный Тогда + Ссылка = Менеджер.ПолучитьСсылку(УникальныйИдентификаторСсылки); + Объект.УстановитьСсылкуНового(Ссылка); + КонецЕсли; Если ЭтоРегистр Тогда @@ -88,7 +98,7 @@ КонецФункции -Процедура Удалить(Знач Ссылки) Экспорт +Процедура Удалить(Знач Ссылки, Привилегированно = Ложь) Экспорт Если ТипЗнч(Ссылки) <> Тип("Массив") Тогда Ссылки = ЮТКоллекции.ЗначениеВМассиве(Ссылки); @@ -102,7 +112,9 @@ Если Ссылка = Неопределено ИЛИ ЮТТипыДанныхСлужебный.ЭтоТипПеречисления(ТипЗначения) Тогда Продолжить; КонецЕсли; - + Если Привилегированно и НЕ ПривилегированныйРежим() Тогда + УстановитьПривилегированныйРежим(Истина); + КонецЕсли; Попытка Если ЮТТипыДанныхСлужебный.ЭтоСсылочныйТип(ТипЗначения) Тогда Объект = Ссылка.ПолучитьОбъект(); diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl" index 78d40fc42..df772a099 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213/Module.bsl" @@ -350,4 +350,15 @@ КонецФункции +// Возволяет выполнить настройку зависимостей теста, тестового набора или модуля. +// Возвращает модуль установки зависимостей теста. +// +// Возвращаемое значение: +// CommonModule +Функция ЗависитОт() Экспорт + + Возврат ЮТЗависимости; + +КонецФункции + #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 7a2b857a8..dc0a45cca 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\242\320\265\321\201\321\202\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -86,6 +86,18 @@ КонецПроцедуры +Процедура ДобавитьЗависимость(ОписаниеЗависимости) Экспорт + + Контекст = Контекст(); + + Если Контекст.ТекущийЭлемент = Неопределено Тогда + ВызватьИсключение "Не инициализированы настройки регистрации тестов"; + КонецЕсли; + + Контекст.ТекущийЭлемент.Зависимости.Добавить(ОписаниеЗависимости); + +КонецПроцедуры + Процедура СПараметрами(Параметры, Знач НовыеКонтексты) Экспорт Контекст = Контекст(); @@ -148,10 +160,23 @@ // Описание сценариев модуля // // Возвращаемое значение: -// Структура - см. ИсполняемыеСценарии +// см. ИсполняемыеСценарии Функция СценарииМодуля() Экспорт - Возврат Контекст().ИсполняемыеСценарии; + СценарииМодуля = Контекст().ИсполняемыеСценарии; + + Результат = Новый Структура("ТестовыеНаборы, НастройкиВыполнения, Зависимости"); + Результат.ТестовыеНаборы = СценарииМодуля.ТестовыеНаборы; + + // TODO Нужен рефакторинг + Результат.НастройкиВыполнения = ЮТКоллекции.СкопироватьРекурсивно(СценарииМодуля.НастройкиВыполнения); + Результат.Зависимости = ЮТКоллекции.СкопироватьРекурсивно(СценарииМодуля.Зависимости); + + СценарииМодуля.НастройкиВыполнения.Очистить(); // Костыль. Очистка первого набора, тк перенесено в модуль + СценарииМодуля.Зависимости.Очистить(); // Костыль. Очистка первого набора, тк перенесено в модуль + + //@skip-check constructor-function-return-section + Возврат Результат; КонецФункции @@ -191,15 +216,19 @@ // Возвращаемое значение: // Структура - Исполняемые сценарии: // * ТестовыеНаборы - Массив из см. ЮТФабрикаСлужебный.ОписаниеТестовогоНабора - Тестовые наборы модуля -// * НастройкиВыполнения- Структура - Настройки исполнения теста +// * НастройкиВыполнения - Структура - Настройки исполнения тестов модуля +// * Зависимости - Массив Из см. ЮТФабрика.НовоеОписаниеЗависимости - Зависимости тестового модуля Функция ИсполняемыеСценарии(МетаданныеМодуля) Структура = Новый Структура; - Структура.Вставить("ТестовыеНаборы", Новый Массив()); - Структура.Вставить("НастройкиВыполнения", Новый Структура()); + Структура.Вставить("ТестовыеНаборы", Новый Массив); + Структура.Вставить("НастройкиВыполнения", Новый Структура); + Структура.Вставить("Зависимости", Новый Массив); Набор = ЮТФабрикаСлужебный.ОписаниеТестовогоНабора(МетаданныеМодуля.Имя); Набор.НастройкиВыполнения = Структура.НастройкиВыполнения; // Общие настройки с набором по умолчанию + Набор.Зависимости = Структура.Зависимости; // Общие зависимости с набором по умолчанию + Структура.ТестовыеНаборы.Добавить(Набор); Возврат Структура; diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/Module.bsl" index 858409ad9..43c64c268 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260/Module.bsl" @@ -87,7 +87,7 @@ КонецФункции -// Возвращает перечисление возможные уровнией исполнения тестрв. +// Возвращает перечисление возможные уровней исполнения тестов. // // Возвращаемое значение: // ФиксированнаяСтруктура - Уровни исполнения: @@ -105,6 +105,28 @@ КонецФункции +// Возвращает перечисление для описания жизненного цикла прогона тестов +// +// Возвращаемое значение: +// ФиксированнаяСтруктура - Этапа прогона: +// * Инициализация - Строка +// * ЗагрузкаТестов - Строка +// * РазрешениеЗависимостей - Строка +// * ПрогонТестов - Строка +// * ФормированиеОтчета - Строка +Функция ЭтапыПрогона() Экспорт + + Этапы = Новый Структура; + Этапы.Вставить("Инициализация", "Инициализация"); + Этапы.Вставить("ЗагрузкаТестов", "ЗагрузкаТестов"); + Этапы.Вставить("РазрешениеЗависимостей", "РазрешениеЗависимостей"); + Этапы.Вставить("ПрогонТестов", "ПрогонТестов"); + Этапы.Вставить("ФормированиеОтчета", "ФормированиеОтчета"); + + Возврат Новый ФиксированнаяСтруктура(Этапы); + +КонецФункции + #КонецОбласти // ПараметрыЗапуска @@ -119,10 +141,11 @@ // * settings - см. НастройкиВыполнения // * closeAfterTests - Булево - Признак необходимости закрытия приложения по окончании прогона // * reportFormat - Строка - Формат отчета о тестировании. -// Модули реализующие различные форматы отчетов собраны в подсистеме ЮТФормированиеОтчета +// Модули реализующие различные форматы отчетов собраны в подсистеме ФормированиеОтчета // * logging - см. ПараметрыЛогирования -// * showReport - Булево - Признак необходмости отобразить отчет в 1с по окончании тестирования +// * showReport - Булево - Признак необходимости отобразить отчет в 1с по окончании тестирования // * exitCode - Строка - Путь к файлу, в который будет записан коды выхода +// * projectPath - Строка - Путь к каталогу с файлами проекта тестирования, репозиторию // * ПодключатьВнешниеКомпоненты - Булево - Выполнять установку и подключение внешних компонент при старте. // Если выключено и включен запрет синхронных вызовов, то компоненты не будут доступы в тонком клиенте. // Если выключено и разрешены синхронные вызовы, то компоненты можно установить вручную и тогда они будут доступны на клиенте. @@ -140,6 +163,7 @@ Параметры.Вставить("showReport", Ложь); Параметры.Вставить("logging", ПараметрыЛогирования()); Параметры.Вставить("exitCode", ""); + Параметры.Вставить("projectPath", ""); Параметры.Вставить("ПодключатьВнешниеКомпоненты", Истина); @@ -216,6 +240,34 @@ КонецФункции +// Создает новое описание зависимости теста. +// +// Возвращаемое значение: +// Структура - Новое описание зависимости: +// * Идентификатор - Строка - Идентификатор зависимости +// * МетодРеализации - Строка - Метод, вызываемый для разрешения зависимости +// * Параметры - Массив из Произвольный - Параметры зависимости, будут проброшены в метод +// * Ключ - Неопределено - Уникальный ключ зависимости, рассчитывается движком +// * Асинхронный - Булево - Признак, что зависимость асинхронная. Асинхронность реализуется за счет передачи ОписанияОповещения в метод реализации +// * ОбработкаНаСервере - Булево - Признак обработки зависимости на сервере +// * ДоступностьНаКлиенте - Булево - Признак доступности зависимости на клиенте +// * ДоступностьНаСервере - Булево - Признак доступности зависимости на сервере +Функция НовоеОписаниеЗависимости() Экспорт + + Описание = Новый Структура; + Описание.Вставить("Идентификатор", ""); + Описание.Вставить("МетодРеализации", ""); + Описание.Вставить("Параметры", Новый Массив); + Описание.Вставить("Ключ", Неопределено); + Описание.Вставить("Асинхронный", Ложь); + Описание.Вставить("ОбработкаНаСервере", Ложь); + Описание.Вставить("ДоступностьНаКлиенте", Истина); + Описание.Вставить("ДоступностьНаСервере", Истина); + + Возврат Описание; + +КонецФункции + #КонецОбласти #Область СлужебныеПроцедурыИФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index c7d3fb6a5..841bccec0 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\261\321\200\320\270\320\272\320\260\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -88,13 +88,13 @@ // * НаборыТестов - Массив из см. ЮТФабрикаСлужебный.ОписаниеТестовогоНабора // * Ошибки - Массив из см. ЮТФабрикаСлужебный.ОписаниеВозникшейОшибки // * НастройкиВыполнения- Структура - Настройки исполнения теста +// * Зависимости- Массив Из см. ЮТФабрика.НовоеОписаниеЗависимости - Зависимости тестового модуля Функция ОписаниеТестовогоМодуля(МетаданныеМодуля, НаборыТестов) Экспорт - Описание = Новый Структура; + Описание = БазовоеОписаниеРегистрируемогоОбъекта(); + Описание.Вставить("МетаданныеМодуля", МетаданныеМодуля); Описание.Вставить("НаборыТестов", НаборыТестов); - Описание.Вставить("Ошибки", Новый Массив); - Описание.Вставить("НастройкиВыполнения", Новый Структура()); Возврат Описание; @@ -115,15 +115,15 @@ // * Тесты - Массив из см. ОписаниеТеста - Коллекция тестов набора, см. ОписаниеТеста // * Ошибки - Массив из см. ЮТФабрикаСлужебный.ОписаниеВозникшейОшибки - Описания ошибок регистрации тестов // * НастройкиВыполнения- Структура - Настройки исполнения теста +// * Зависимости- Массив Из см. ЮТФабрика.НовоеОписаниеЗависимости - Зависимости тестового набора Функция ОписаниеТестовогоНабора(Имя, ТегиСтрокой = "") Экспорт - Описание = Новый Структура; + Описание = БазовоеОписаниеРегистрируемогоОбъекта(); + Описание.Вставить("Имя", Строка(Имя)); Описание.Вставить("Представление", Строка(Имя)); Описание.Вставить("Теги", СтрРазделить(ТегиСтрокой, ", ", Ложь)); Описание.Вставить("Тесты", Новый Массив); - Описание.Вставить("Ошибки", Новый Массив); - Описание.Вставить("НастройкиВыполнения", Новый Структура()); Возврат Описание; @@ -147,18 +147,19 @@ // * НастройкиВыполнения- Структура - Настройки исполнения теста // * Параметры - Неопределено, Массив из Произвольный - Параметры теста // * НомерВНаборе - Число - Порядковый номер теста в наборе +// * Зависимости- Массив Из см. ЮТФабрика.НовоеОписаниеЗависимости - Зависимости теста +// * Ошибки - Массив из см. ЮТФабрикаСлужебный.ОписаниеВозникшейОшибки - Описания ошибок регистрации тестов Функция ОписаниеТеста(Имя, Представление, КонтекстыВызова, Знач ТегиСтрокой = "") Экспорт Если ТегиСтрокой = Неопределено Тогда ТегиСтрокой = ""; КонецЕсли; - Описание = Новый Структура(); + Описание = БазовоеОписаниеРегистрируемогоОбъекта(); Описание.Вставить("Имя", Строка(Имя)); Описание.Вставить("Представление", Строка(Представление)); Описание.Вставить("Теги", СтрРазделить(ТегиСтрокой, ", ", Ложь)); Описание.Вставить("КонтекстВызова", КонтекстыВызова); - Описание.Вставить("НастройкиВыполнения", Новый Структура()); Описание.Вставить("Параметры", Неопределено); Описание.Вставить("НомерВНаборе", 0); @@ -177,14 +178,13 @@ // * НаборыТестов - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов // * Ошибки - Массив из см. ЮТФабрикаСлужебный.ОписаниеВозникшейОшибки // * НастройкиВыполнения- Структура - Настройки исполнения теста +// * Зависимости- Массив Из см. ЮТФабрика.НовоеОписаниеЗависимости - Зависимости тестового модуля Функция ОписаниеИсполняемогоТестовогоМодуля(ТестовыйМодуль) Экспорт - Описание = Новый Структура; + Описание = БазовоеОписаниеИсполняемогоОбъекта(ТестовыйМодуль); Описание.Вставить("МетаданныеМодуля", ТестовыйМодуль.МетаданныеМодуля); Описание.Вставить("НаборыТестов", Новый Массив); - Описание.Вставить("Ошибки", ЮТКоллекции.СкопироватьМассив(ТестовыйМодуль.Ошибки)); - Описание.Вставить("НастройкиВыполнения", ЮТКоллекции.СкопироватьСтруктуру(ТестовыйМодуль.НастройкиВыполнения)); Возврат Описание; @@ -211,14 +211,14 @@ // * Длительность - Число - Продолжительность выполнения набора // * НастройкиВыполнения - Структура - Настройки исполнения теста // * ТестовыйМодуль - См. ОписаниеТестовогоМодуля +// * Зависимости- Массив Из см. ЮТФабрика.НовоеОписаниеЗависимости - Зависимости тестового набора Функция ОписаниеИсполняемогоНабораТестов(НаборТестов, ТестовыйМодуль) Экспорт - Описание = Новый Структура(); + Описание = БазовоеОписаниеИсполняемогоОбъекта(НаборТестов); Описание.Вставить("Имя", НаборТестов.Имя); Описание.Вставить("Представление", НаборТестов.Представление); Описание.Вставить("Теги", НаборТестов.Теги); - Описание.Вставить("Ошибки", ЮТКоллекции.СкопироватьМассив(НаборТестов.Ошибки)); Описание.Вставить("Режим", ""); Описание.Вставить("ТестовыйМодуль", ТестовыйМодуль); Описание.Вставить("МетаданныеМодуля", ТестовыйМодуль.МетаданныеМодуля); @@ -226,7 +226,6 @@ Описание.Вставить("Выполнять", Описание.Ошибки.Количество() = 0); Описание.Вставить("ДатаСтарта", 0); Описание.Вставить("Длительность", 0); - Описание.Вставить("НастройкиВыполнения", НаборТестов.НастройкиВыполнения); Возврат Описание; @@ -255,27 +254,26 @@ // * НастройкиВыполнения- Структура - Настройки исполнения теста // * Параметры - Неопределено, Массив из Произвольный - Набор параметров теста // * НомерВНаборе - Число - Порядковый номер теста в наборе +// * Зависимости- Массив Из см. ЮТФабрика.НовоеОписаниеЗависимости - Зависимости теста Функция ОписаниеИсполняемогоТеста(Тест, Режим, ТестовыйМодуль) Экспорт ПолноеИмяМетода = СтрШаблон("%1.%2", ТестовыйМодуль.МетаданныеМодуля.Имя, Тест.Имя); Представление = ПредставлениеТеста(Тест); - ОписаниеТеста = Новый Структура; - ОписаниеТеста.Вставить("Имя", Представление); - ОписаниеТеста.Вставить("Метод", Тест.Имя); - ОписаниеТеста.Вставить("ПолноеИмяМетода", ПолноеИмяМетода); - ОписаниеТеста.Вставить("Теги", Тест.Теги); - ОписаниеТеста.Вставить("Режим", Режим); - ОписаниеТеста.Вставить("ДатаСтарта", 0); - ОписаниеТеста.Вставить("Длительность", 0); - ОписаниеТеста.Вставить("Статус", ЮТФабрика.СтатусыИсполненияТеста().Ожидание); - ОписаниеТеста.Вставить("Ошибки", Новый Массив); - ОписаниеТеста.Вставить("НастройкиВыполнения", Тест.НастройкиВыполнения); - ОписаниеТеста.Вставить("Параметры", Тест.Параметры); - ОписаниеТеста.Вставить("НомерВНаборе", Тест.НомерВНаборе); + Описание = БазовоеОписаниеИсполняемогоОбъекта(Тест); + Описание.Вставить("Имя", Представление); + Описание.Вставить("Метод", Тест.Имя); + Описание.Вставить("ПолноеИмяМетода", ПолноеИмяМетода); + Описание.Вставить("Теги", Тест.Теги); + Описание.Вставить("Режим", Режим); + Описание.Вставить("ДатаСтарта", 0); + Описание.Вставить("Длительность", 0); + Описание.Вставить("Статус", ЮТФабрика.СтатусыИсполненияТеста().Ожидание); + Описание.Вставить("Параметры", Тест.Параметры); + Описание.Вставить("НомерВНаборе", Тест.НомерВНаборе); //@skip-check constructor-function-return-section - Возврат ОписаниеТеста; + Возврат Описание; КонецФункции @@ -431,7 +429,7 @@ // Структура - Описание проверяемого значения: // * Значение - Произвольный // * Представление - Строка - Представление объекта -// - Неопределено - Если не указано тогда используется платформенное предсталение (`Строка(Значение)`) +// - Неопределено - Если не указано тогда используется платформенное представление (`Строка(Значение)`) // * ИмяСвойства - Строка, Число, Неопределено - Имя проверяемого реквизита, индекса Функция ОписаниеПроверяемогоЗначения(ПроверяемоеЗначение) Экспорт @@ -465,6 +463,25 @@ КонецФункции +#Область Зависимости + +Функция РезультатРазрешенияЗависимости() Экспорт + + Результат = Новый Структура(); + Результат.Вставить("Успешно", Ложь); + Результат.Вставить("Ошибка", Неопределено); + Результат.Вставить("СохраняемыйКонтекст", Неопределено); + Результат.Вставить("СохраняемыйКонтекстКлиент", Неопределено); + Результат.Вставить("СохраняемыйКонтекстСервер", Неопределено); + Результат.Вставить("ДоступностьНаКлиенте", Истина); + Результат.Вставить("ДоступностьНаСервере", Истина); + + Возврат Результат; + +КонецФункции + +#КонецОбласти + #КонецОбласти #Область КонструкторыКонтекстов @@ -505,7 +522,7 @@ Описание = Новый Структура(); Описание.Вставить("Сообщения", Новый Массив); - Описание.Вставить("Успешно", Истина); + Описание.Вставить("Успешно", Успешно); Возврат Описание; @@ -658,7 +675,7 @@ // Структура - Описание формата отчета: // * Идентификатор - Строка - Уникальный идентификатор формата отчета // * Представление - Строка - Пользовательское представление отчета, выводится в форму настроек тестирования -// * ЗаписьВКаталог - Булево - Отчет записывается в каталог, в этом случае должен быть установлен призак `СамостоятельнаяЗаписьОтчета` +// * ЗаписьВКаталог - Булево - Отчет записывается в каталог, в этом случае должен быть установлен признак `СамостоятельнаяЗаписьОтчета` // * ФильтрВыбораФайла - Строка - Фильтр выбора, используется в форме настроек тестирования // * ИмяФайлаПоУмолчанию - Строка - Для отчетов, записываемых в файл, имя файла если в параметрах указан каталог // * СамостоятельнаяЗаписьОтчета - Булево - Способ записи отчета в файлы. @@ -677,8 +694,31 @@ Возврат Описание; КонецФункции + #КонецОбласти #Область СлужебныеПроцедурыИФункции +Функция БазовоеОписаниеРегистрируемогоОбъекта() + + Описание = Новый Структура(); + Описание.Вставить("НастройкиВыполнения", Новый Структура()); + Описание.Вставить("Зависимости", Новый Массив()); + Описание.Вставить("Ошибки", Новый Массив); + + Возврат Описание; + +КонецФункции + +Функция БазовоеОписаниеИсполняемогоОбъекта(РегистрируемыйОбъекта) + + Описание = Новый Структура(); + Описание.Вставить("Ошибки", ЮТКоллекции.СкопироватьМассив(РегистрируемыйОбъекта.Ошибки)); + Описание.Вставить("НастройкиВыполнения", ЮТКоллекции.СкопироватьСтруктуру(РегистрируемыйОбъекта.НастройкиВыполнения)); + Описание.Вставить("Зависимости", ЮТКоллекции.СкопироватьМассив(РегистрируемыйОбъекта.Зависимости)); + + Возврат Описание; + +КонецФункции + #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\271\320\273\321\213/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\271\320\273\321\213/Module.bsl" index caab4a5e4..fc7f3c007 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\271\320\273\321\213/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\244\320\260\320\271\320\273\321\213/Module.bsl" @@ -148,6 +148,32 @@ КонецПроцедуры +Процедура СоздатьКаталогРекурсивно(Путь) Экспорт + + Файл = Новый Файл(Путь); + + Если Файл.Существует() Тогда + Возврат; + КонецЕсли; + + СоздатьКаталогРекурсивно(Файл.Путь); + + СоздатьКаталог(Файл.ПолноеИмя); + +КонецПроцедуры + +Процедура СоздатьРодительскийКаталог(Путь) Экспорт + + Файл = Новый Файл(Путь); + + Если Файл.Существует() Тогда + Возврат; + КонецЕсли; + + СоздатьКаталогРекурсивно(Файл.Путь); + +КонецПроцедуры + #КонецОбласти #Область СлужебныеПроцедурыИФункции diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index e8c93a339..3aeea5960 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -18,6 +18,7 @@ #Область СлужебныйПрограммныйИнтерфейс +#Если Клиент Тогда // ЗагрузитьТесты // Читает наборы тестов (тестовые модули) из расширений // Параметры: @@ -43,9 +44,12 @@ КонецЦикла; + ЮТЗависимостиСлужебныйКлиент.ДедупликацияЗависимостей(Результат); + Возврат Результат; КонецФункции +#КонецЕсли // ПрочитатьНаборТестов // Читает набор тестов из модуля @@ -91,10 +95,9 @@ ЮТТестыСлужебный.ПослеЧтенияСценариевМодуля(); Сценарии = ЮТТестыСлужебный.СценарииМодуля(); - УдалитьНастройкиМодуляИзПервогоНабора(Сценарии); // TODO Нужен рефакторинг - ОписаниеТестовогоМодуля.НаборыТестов = ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(Сценарии.ТестовыеНаборы, МетаданныеМодуля); ОписаниеТестовогоМодуля.НастройкиВыполнения = Сценарии.НастройкиВыполнения; + ОписаниеТестовогоМодуля.Зависимости = Сценарии.Зависимости; Иначе @@ -222,14 +225,4 @@ КонецФункции -Процедура УдалитьНастройкиМодуляИзПервогоНабора(СценарииМодуля) - - НастройкиВыполнения = ЮТКоллекции.СкопироватьРекурсивно(СценарииМодуля.НастройкиВыполнения); - - СценарииМодуля.НастройкиВыполнения.Очистить(); - - СценарииМодуля.НастройкиВыполнения = НастройкиВыполнения; - -КонецПроцедуры - #КонецОбласти diff --git "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\265\321\201\321\202/Module.bsl" "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\265\321\201\321\202/Module.bsl" index 2f63ffd29..a07264230 100644 --- "a/exts/yaxunit/src/CommonModules/\320\256\320\242\320\265\321\201\321\202/Module.bsl" +++ "b/exts/yaxunit/src/CommonModules/\320\256\320\242\320\265\321\201\321\202/Module.bsl" @@ -203,4 +203,21 @@ КонецПроцедуры +// Возвращает данные зависимость. +// Результат зависит от реализации зависимости. +// Для указания зависимости используйте методы модуля `ЮТЗависимости`, необходимо указывать туже зависимость, что указана при регистрации. +// +// Параметры: +// ОписаниеЗависимости - см. ЮТФабрика.НовоеОписаниеЗависимости +// +// Возвращаемое значение: +// Произвольный +// Пример: +// ПолноеИмяФайла = ЮТест.Зависимость(ЮТЗависимости.ФайлыПроекта(".gitignore")).ПолноеИмя; +Функция Зависимость(ОписаниеЗависимости) Экспорт + + Возврат ЮТЗависимостиСлужебный.ДанныеЗависимости(ОписаниеЗависимости); + +КонецФункции + #КонецОбласти diff --git a/exts/yaxunit/src/Configuration/Configuration.mdo b/exts/yaxunit/src/Configuration/Configuration.mdo index 3d04b03a7..829499ea0 100644 --- a/exts/yaxunit/src/Configuration/Configuration.mdo +++ b/exts/yaxunit/src/Configuration/Configuration.mdo @@ -20,7 +20,7 @@ 8.3.10 AddOn Russian - 24.03 + 24.04 Русский Adopted @@ -30,7 +30,7 @@ ru Subsystem.ЮТДвижок - Subsystem.ЮТДинамическиПодключаемые + Subsystem.ЮТПодключаемыеМодули Subsystem.ЮТПубличный CommonPicture.ЮТЗапустить CommonPicture.ЮТНеизвестный @@ -61,6 +61,10 @@ CommonModule.МокитоСлужебный CommonModule.ЮТАсинхроннаяОбработкаСлужебныйКлиент CommonModule.ЮТест + CommonModule.ЮТЗависимости + CommonModule.ЮТЗависимостиСлужебный + CommonModule.ЮТЗависимостиСлужебныйВызовСервера + CommonModule.ЮТЗависимостиСлужебныйКлиент CommonModule.ЮТЗапросы CommonModule.ЮТЗапросыСлужебныйВызовСервера CommonModule.ЮТЗапросыСлужебныйКлиентСервер @@ -97,6 +101,8 @@ CommonModule.ЮТОтчетJUnitСлужебный CommonModule.ЮТОтчетСлужебный CommonModule.ЮТПараметрыЗапускаСлужебный + CommonModule.ЮТПодключаемыеМодулиСлужебный + CommonModule.ЮТПодключаемыеМодулиСлужебныйВызовСервера CommonModule.ЮТПодражатель CommonModule.ЮТПодражатель_Банки CommonModule.ЮТПодражатель_Компании @@ -108,7 +114,8 @@ CommonModule.ЮТПредикатыСлужебныйКлиентСервер CommonModule.ЮТПреобразованияСлужебный CommonModule.ЮТПроверкиСлужебный - CommonModule.ЮТРасширенияСлужебный + CommonModule.ЮТРазрешениеЗависимостейСлужебныйВызовСервера + CommonModule.ЮТРазрешениеЗависимостейСлужебныйКлиент CommonModule.ЮТРегистрацияОшибок CommonModule.ЮТРегистрацияОшибокСлужебный CommonModule.ЮТСлужебныйПовторногоИспользования diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO/ObjectModule.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO/ObjectModule.bsl" index 7ebf637ca..c7e577eec 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO/ObjectModule.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\236\320\261\321\212\320\265\320\272\321\202\320\260XDTO/ObjectModule.bsl" @@ -194,7 +194,12 @@ КонецЕсли; СтекОбъектов = Новый Массив(); + ТипОбъекта = Фабрика.Тип(ПространствоИмен, ИмяТипаОбъекта); + Если ТипОбъекта = Неопределено Тогда + ВызватьИсключение СтрШаблон("Неизвестный тип `%1`; пространство имен: `%2`", ИмяТипаОбъекта, ПространствоИмен); + КонецЕсли; + ДобавитьНовыйОбъектВСтек(ТипОбъекта); КонецПроцедуры @@ -239,15 +244,18 @@ Функция СлучайноеЗначениеСвойства(Свойство, Уровень = 0) ТипСвойства = Свойство.Тип; + Если ТипЗнч(ТипСвойства) = Тип("ТипЗначенияXDTO") Тогда - Возврат СлучайноеЗначениеПримитипа(Свойство); + Возврат СлучайноеЗначениеПримитива(Свойство); ИначеЕсли Уровень < 3 Тогда Возврат СлучайноеЗначениеОбъекта(Свойство, Уровень + 1); + Иначе + Возврат Неопределено; КонецЕсли; КонецФункции -Функция СлучайноеЗначениеПримитипа(Свойство) +Функция СлучайноеЗначениеПримитива(Свойство) Тип = Свойство.Тип; @@ -331,12 +339,14 @@ Процедура СписокСлучайныхЗначений(Список, Свойство, Уровень) - Если Свойство.ВерхняяГраница = -1 Тогда - Количество = ЮТест.Данные().СлучайноеЧисло(Свойство.НижняяГраница, 10); - Иначе - Количество = ЮТест.Данные().СлучайноеЧисло(Свойство.НижняяГраница, Свойство.ВерхняяГраница); + ВерхняяГраница = Свойство.НижняяГраница + 10; + + Если Свойство.ВерхняяГраница > 0 Тогда + ВерхняяГраница = Мин(ВерхняяГраница, Свойство.ВерхняяГраница); // Для больших значений верхней границы КонецЕсли; + Количество = ЮТест.Данные().СлучайноеЧисло(Свойство.НижняяГраница, ВерхняяГраница); + Для Инд = 0 По Количество Цикл Значение = СлучайноеЗначениеСвойства(Свойство, Уровень); Список.Добавить(Значение); diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Forms/\320\232\320\273\320\270\320\265\320\275\321\202\321\201\320\272\320\270\320\271\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200/Module.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Forms/\320\232\320\273\320\270\320\265\320\275\321\202\321\201\320\272\320\270\320\271\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200/Module.bsl" index bc1f2d7b3..a1196a988 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Forms/\320\232\320\273\320\270\320\265\320\275\321\202\321\201\320\272\320\270\320\271\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200/Module.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Forms/\320\232\320\273\320\270\320\265\320\275\321\202\321\201\320\272\320\270\320\271\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200/Module.bsl" @@ -170,6 +170,22 @@ КонецФункции +// Устанавливает дополнительное свойство объекта. +// +// Параметры: +// Значение - УникальныйИдентификатор - Уникальный идентификатор ссылки нового объекта +// - Строка - Строковое представление уникального идентификатора ссылки нового объекта +// +// Возвращаемое значение: +// ОбработкаОбъект.ЮТКонструкторТестовыхДанных - Конструктор +&НаКлиенте +Функция УстановитьСсылкуНового(Значение) Экспорт + + ЮТКонструкторТестовыхДанныхСлужебный.УстановитьСсылкуНового(Контекст, Значение); + Возврат ЭтотОбъект; + +КонецФункции + // Создает новый объект и возвращает его или ссылку. // // Важно, после создания данные не очищаются, поэтому многократный вызов метода создаст множество одинаковых объектов. diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/ObjectModule.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/ObjectModule.bsl" index 978555fff..33669f14d 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/ObjectModule.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/ObjectModule.bsl" @@ -161,6 +161,21 @@ КонецФункции +// Устанавливает дополнительное свойство объекта. +// +// Параметры: +// Значение - УникальныйИдентификатор - Уникальный идентификатор ссылки нового объекта +// - Строка - Строковое представление уникального идентификатора ссылки нового объекта +// +// Возвращаемое значение: +// ОбработкаОбъект.ЮТКонструкторТестовыхДанных - Конструктор +Функция УстановитьСсылкуНового(Значение) Экспорт + + ЮТКонструкторТестовыхДанныхСлужебный.УстановитьСсылкуНового(Контекст, Значение); + Возврат ЭтотОбъект; + +КонецФункции + // Создает новый объект и возвращает его или ссылку. // // Важно, после создания данные не очищаются, поэтому многократный вызов метода создаст множество одинаковых объектов. diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Form.form" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Form.form" index 706a639eb..bcd4f6619 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Form.form" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Form.form" @@ -355,6 +355,7 @@ 8.0 true + Style.NormalTextFont @@ -1443,6 +1444,7 @@ false 12.0 + Style.NormalTextFont Left diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" index e8942f913..f0b5e5234 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217/Module.bsl" @@ -860,8 +860,8 @@ ШаблонПредставленияОшибки = ЮТОбщий.Макет("ОбщийМакет.ЮТИнформацияОбОшибке").ПолучитьТекст(); ПредставленияОшибки = СтрЗаменить(ШаблонПредставленияОшибки, "TREE_CONTENT", СтрСоединить(Блоки, Символы.ПС)); - Возврат ПолучитьНавигационнуюСсылкуИнформационнойБазы() + "/"+ ПоместитьВоВременноеХранилище(ПредставленияОшибки, Новый УникальныйИдентификатор); - + Возврат ПредставленияОшибки; + КонецФункции &НаСервереБезКонтекста diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Form.form" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Form.form" index 70e3150f5..32d8eb4c1 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Form.form" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Form.form" @@ -467,13 +467,65 @@ true true true - true true true true true + + КаталогПроекта + 106 + true + true + + true + + + КаталогПроекта + + + КаталогПроектаРасширеннаяПодсказка + 108 + true + true + + true + + Label + true + true + + Left + + + + КаталогПроектаКонтекстноеМеню + 107 + true + true + + true + + true + + InputField + Enter + true + Left + true + + + StartChoice + КаталогПроектаНачалоВыбора + + true + true + true + true + true + + ГруппаОтчеты 75 @@ -490,7 +542,7 @@ ОтобразитьОтчетРасширеннаяПодсказка - 71 + 30 true true @@ -1344,6 +1396,9 @@ true + + ПараметрыЗапуска + ЗапускИзКонфигуратор @@ -1464,6 +1519,9 @@ true + + ЛогированиеВКонсоль + ФорматОтчета @@ -1482,6 +1540,9 @@ true + + ФорматОтчета + УровеньЛога @@ -1500,6 +1561,9 @@ true + + УровеньЛога + ЗакрытьПослеТестирования @@ -1517,6 +1581,30 @@ true + + ЗакрытьПослеТестирования + + + + КаталогПроекта + + <key>ru</key> + <value>Каталог проекта</value> + + 71 + + String + + + + true + + + true + + + КаталогПроекта + УстановитьФлажки diff --git "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Module.bsl" "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Module.bsl" index 013789fbd..14c0c1420 100644 --- "a/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Module.bsl" +++ "b/exts/yaxunit/src/DataProcessors/\320\256\320\242\320\256\320\275\320\270\321\202\320\242\320\265\321\201\321\202\321\213/Forms/\320\241\320\276\320\267\320\264\320\260\320\275\320\270\320\265\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\270/Module.bsl" @@ -35,7 +35,8 @@ УровеньЛога = Конфигурация.logging.level; ОтобразитьОтчет = Конфигурация.showReport; ЗакрытьПослеТестирования = Конфигурация.closeAfterTests; - ЛогированиеВКонсоль = Конфигурация.logging.console ; + КаталогПроекта = Конфигурация.projectPath; + ЛогированиеВКонсоль = Конфигурация.logging.console; КонецПроцедуры @@ -62,6 +63,14 @@ КонецПроцедуры +&НаКлиенте +Процедура КаталогПроектаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) + + Оповещение = Новый ОписаниеОповещения("СохранитьИмяФайлаВРеквизит", ЭтотОбъект, "КаталогПроекта"); + ВыбратьКаталог(КаталогПроекта, Оповещение); + +КонецПроцедуры + &НаКлиенте Процедура ЗапускИзПредприятияПриИзменении(Элемент) @@ -79,14 +88,16 @@ &НаКлиенте Процедура ВыводЛогаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) - ВыбратьФайл("*.log|*.log|*.txt|*.txt|All files(*.*)|*.*", ИмяФайлаЛога, Новый ОписаниеОповещения("УстановитьИмяФайлаЛога", ЭтотОбъект)); + Оповещение = Новый ОписаниеОповещения("СохранитьИмяФайлаВРеквизит", ЭтотОбъект, "ИмяФайлаЛога"); + ВыбратьФайл("*.log|*.log|*.txt|*.txt|All files(*.*)|*.*", ИмяФайлаЛога, Оповещение); КонецПроцедуры &НаКлиенте Процедура ИмяФайлаКодаВозвратаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) - ВыбратьФайл("All files(*.*)|*.*", ИмяФайлаЛога, Новый ОписаниеОповещения("УстановитьИмяФайлаКодаВозврата", ЭтотОбъект)); + Оповещение = Новый ОписаниеОповещения("СохранитьИмяФайлаВРеквизит", ЭтотОбъект, "ИмяФайлаКодаВозврата"); + ВыбратьФайл("All files(*.*)|*.*", ИмяФайлаКодаВозврата, Оповещение); КонецПроцедуры @@ -99,10 +110,11 @@ Возврат; КонецЕсли; + Оповещение = Новый ОписаниеОповещения("СохранитьИмяФайлаВРеквизит", ЭтотОбъект, "ИмяФайлаОтчета"); Если ОписаниеФормата.ЗаписьВКаталог Тогда - ВыбратьКаталог(ИмяФайлаОтчета, Новый ОписаниеОповещения("УстановитьИмяФайлаОтчета", ЭтотОбъект)); + ВыбратьКаталог(ИмяФайлаОтчета, Оповещение); Иначе - ВыбратьФайл(ОписаниеФормата.ФильтрВыбораФайла, ИмяФайлаОтчета, Новый ОписаниеОповещения("УстановитьИмяФайлаОтчета", ЭтотОбъект)); + ВыбратьФайл(ОписаниеФормата.ФильтрВыбораФайла, ИмяФайлаОтчета, Оповещение); КонецЕсли; КонецПроцедуры @@ -393,28 +405,10 @@ КонецПроцедуры &НаКлиенте -Процедура УстановитьИмяФайлаЛога(ВыбранныйФайл, ДополнительныеПараметры) Экспорт - - Если ВыбранныйФайл <> Неопределено Тогда - ИмяФайлаЛога = ВыбранныйФайл; - КонецЕсли; - -КонецПроцедуры - -&НаКлиенте -Процедура УстановитьИмяФайлаКодаВозврата(ВыбранныйФайл, ДополнительныеПараметры) Экспорт - - Если ВыбранныйФайл <> Неопределено Тогда - ИмяФайлаКодаВозврата = ВыбранныйФайл; - КонецЕсли; - -КонецПроцедуры - -&НаКлиенте -Процедура УстановитьИмяФайлаОтчета(ВыбранныйФайл, ДополнительныеПараметры) Экспорт +Процедура СохранитьИмяФайлаВРеквизит(ВыбранныйФайл, ИмяРеквизита) Экспорт Если ВыбранныйФайл <> Неопределено Тогда - ИмяФайлаОтчета = ВыбранныйФайл; + ЭтотОбъект[ИмяРеквизита] = ВыбранныйФайл; КонецЕсли; КонецПроцедуры @@ -468,6 +462,7 @@ Конфигурация.closeAfterTests = ЗакрытьПослеТестирования; Конфигурация.reportFormat = ФорматОтчета; Конфигурация.reportPath = ИмяФайлаОтчета; + Конфигурация.projectPath = КаталогПроекта; Конфигурация.logging.level = УровеньЛога; Конфигурация.logging.file = ИмяФайлаЛога; @@ -477,6 +472,8 @@ Конфигурация.exitCode = ИмяФайлаКодаВозврата; КонецЕсли; + Конфигурация.filter.Очистить(); + Если НЕ (УстановленФильтрПоРасширению(Конфигурация) ИЛИ УстановленФильтрПоМодулям(Конфигурация)) Тогда УстановитьФильтрПоТестам(Конфигурация); КонецЕсли; @@ -519,7 +516,7 @@ КонецЦикла; Если Расширения.Количество() Тогда - Конфигурация.filter.extensions = Расширения; + Конфигурация.filter.Вставить("extensions",Расширения); КонецЕсли; Возврат Расширения.Количество() > 0; @@ -550,7 +547,7 @@ КонецЦикла; Если Модули.Количество() Тогда - Конфигурация.filter.modules = Модули; + Конфигурация.filter.Вставить("modules", Модули); КонецЕсли; Возврат Модули.Количество() > 0; @@ -563,7 +560,7 @@ Тесты = Новый Массив(); ДобавитьОтмеченныеТесты(ДеревоТестов.ПолучитьЭлементы(), Тесты); - Конфигурация.filter.tests = Тесты; + Конфигурация.filter.Вставить("tests", Тесты); КонецПроцедуры diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\234\320\276\320\272\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265/\320\256\320\242\320\234\320\276\320\272\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\234\320\276\320\272\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265/\320\256\320\242\320\234\320\276\320\272\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265.mdo" index 75ec9c01e..3d16e0022 100644 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\234\320\276\320\272\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265/\320\256\320\242\320\234\320\276\320\272\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265.mdo" +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\234\320\276\320\272\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265/\320\256\320\242\320\234\320\276\320\272\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265.mdo" @@ -11,6 +11,7 @@ Содержит функциональности мокирования данных CommonModule.МокитоОбучение + CommonModule.МокитоПерехват CommonModule.МокитоПроверки CommonModule.МокитоСлужебный DataProcessor.ЮТHTTPServiceRequest diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201.mdo" index 820d5e445..68a3a618e 100644 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201.mdo" +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201/\320\256\320\242\320\241\320\265\321\200\320\262\320\270\321\201.mdo" @@ -11,19 +11,27 @@ Сервисная функциональность работы движка CommonModule.ЮТАсинхроннаяОбработкаСлужебныйКлиент + CommonModule.ЮТЗависимости + CommonModule.ЮТЗависимостиСлужебный CommonModule.ЮТИсключения CommonModule.ЮТКомпоненты CommonModule.ЮТКомпонентыСлужебныйВызовСервера CommonModule.ЮТКомпонентыСлужебныйКлиент CommonModule.ЮТЛогированиеСлужебныйВызовСервера + CommonModule.ЮТЛогИсполненияТестаСлужебный CommonModule.ЮТЛокальСлужебный + CommonModule.ЮТМетаданныеСлужебный CommonModule.ЮТМетаданныеСлужебныйВызовСервера CommonModule.ЮТМетаданныеСлужебныйПовтИсп + CommonModule.ЮТМетодыСлужебный CommonModule.ЮТНастройкиВыполнения CommonModule.ЮТОбщийСлужебныйВызовСервера CommonModule.ЮТОтчетСлужебный + CommonModule.ЮТПодключаемыеМодулиСлужебный CommonModule.ЮТПроверкиСлужебный - CommonModule.ЮТРасширенияСлужебный + CommonModule.ЮТРазрешениеЗависимостейСлужебныйВызовСервера + CommonModule.ЮТРазрешениеЗависимостейСлужебныйКлиент + CommonModule.ЮТРегистрацияОшибок CommonModule.ЮТРегистрацияОшибокСлужебный CommonModule.ЮТСлужебныйПовторногоИспользования CommonModule.ЮТСобытияСлужебный @@ -31,15 +39,19 @@ CommonModule.ЮТТипыДанныхСлужебный CommonModule.ЮТФабрикаСлужебный CommonModule.ЮТФайлы + CommonPicture.ЮТЗапустить CommonPicture.ЮТНеизвестный CommonPicture.ЮТОшибка + CommonPicture.ЮТПерезапуститьУпавшие CommonPicture.ЮТПодсистема CommonPicture.ЮТПропущен + CommonPicture.ЮТСравнить CommonPicture.ЮТУпал CommonPicture.ЮТУспешно CommonPicture.ЮТЭлементыТестов CommonTemplate.ЮТRegEx1CAddin CommonTemplate.ЮТYaxUnitAddIn + CommonTemplate.ЮТИнформацияОбОшибке CommonTemplate.ЮТОписаниеМетаданных Subsystem.ЮТДвижок diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265.mdo" index 64b093691..4544f5ea1 100644 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265.mdo" +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\262\320\270\320\266\320\276\320\272/Subsystems/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265.mdo" @@ -18,6 +18,7 @@ CommonModule.ЮТТестовыеДанныеСлужебный CommonModule.ЮТТестовыеДанныеСлужебныйВызовСервера CommonModule.ЮТТестовыеДанныеСлужебныйТаблицыЗначений + DataProcessor.ЮТКонструкторОбъектаXDTO DataProcessor.ЮТКонструкторТестовыхДанных ЮТПодражатель Subsystem.ЮТДвижок diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\270\320\275\320\260\320\274\320\270\321\207\320\265\321\201\320\272\320\270\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265/CommandInterface.cmi" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/CommandInterface.cmi" similarity index 100% rename from "exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\270\320\275\320\260\320\274\320\270\321\207\320\265\321\201\320\272\320\270\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265/CommandInterface.cmi" rename to "exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/CommandInterface.cmi" diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\270\320\275\320\260\320\274\320\270\321\207\320\265\321\201\320\272\320\270\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265/Subsystems/\320\256\320\242\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/CommandInterface.cmi" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/CommandInterface.cmi" similarity index 100% rename from "exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\270\320\275\320\260\320\274\320\270\321\207\320\265\321\201\320\272\320\270\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265/Subsystems/\320\256\320\242\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/CommandInterface.cmi" rename to "exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/CommandInterface.cmi" diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\270\320\275\320\260\320\274\320\270\321\207\320\265\321\201\320\272\320\270\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265/Subsystems/\320\256\320\242\320\244\320\276\321\200\320\274\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\236\321\202\321\207\320\265\321\202\320\260/CommandInterface.cmi" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262/CommandInterface.cmi" similarity index 100% rename from "exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\270\320\275\320\260\320\274\320\270\321\207\320\265\321\201\320\272\320\270\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265/Subsystems/\320\256\320\242\320\244\320\276\321\200\320\274\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\236\321\202\321\207\320\265\321\202\320\260/CommandInterface.cmi" rename to "exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262/CommandInterface.cmi" diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262/\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262/\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262.mdo" new file mode 100644 index 000000000..b1bc26337 --- /dev/null +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262/\320\227\320\260\320\263\321\200\321\203\320\267\320\272\320\260\320\242\320\265\321\201\321\202\320\276\320\262.mdo" @@ -0,0 +1,10 @@ + + + ЗагрузкаТестов + + ru + Загрузка тестов + + true + Subsystem.ЮТПодключаемыеМодули.Subsystem.ОбработчикиСобытий + diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217/CommandInterface.cmi" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217/CommandInterface.cmi" new file mode 100644 index 000000000..0cf6de8a4 --- /dev/null +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217/CommandInterface.cmi" @@ -0,0 +1,2 @@ + + diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217.mdo" new file mode 100644 index 000000000..90f3f4ecf --- /dev/null +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217.mdo" @@ -0,0 +1,11 @@ + + + Инициализация + + ru + Инициализация + + true + CommonModule.ЮТЗависимостиСлужебный + Subsystem.ЮТПодключаемыеМодули.Subsystem.ОбработчикиСобытий + diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\320\276\320\262/CommandInterface.cmi" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\320\276\320\262/CommandInterface.cmi" new file mode 100644 index 000000000..0cf6de8a4 --- /dev/null +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\320\276\320\262/CommandInterface.cmi" @@ -0,0 +1,2 @@ + + diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\320\276\320\262/\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\320\276\320\262.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\320\276\320\262/\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\320\276\320\262.mdo" new file mode 100644 index 000000000..cabd5580a --- /dev/null +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\320\276\320\262/\320\230\321\201\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\242\320\265\321\201\321\202\320\276\320\262.mdo" @@ -0,0 +1,14 @@ + + + ИсполнениеТестов + + ru + Исполнение тестов + + true + CommonModule.МокитоСлужебный + CommonModule.ЮТИсполнительСлужебныйКлиент + CommonModule.ЮТТестовыеДанныеСлужебный + CommonModule.ЮТУтверждения + Subsystem.ЮТПодключаемыеМодули.Subsystem.ОбработчикиСобытий + diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\270\320\275\320\260\320\274\320\270\321\207\320\265\321\201\320\272\320\270\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265/Subsystems/\320\256\320\242\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/\320\256\320\242\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271.mdo" similarity index 55% rename from "exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\270\320\275\320\260\320\274\320\270\321\207\320\265\321\201\320\272\320\270\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265/Subsystems/\320\256\320\242\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/\320\256\320\242\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271.mdo" rename to "exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271.mdo" index fb20ea619..ee846d2ab 100644 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\270\320\275\320\260\320\274\320\270\321\207\320\265\321\201\320\272\320\270\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265/Subsystems/\320\256\320\242\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/\320\256\320\242\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271.mdo" +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271.mdo" @@ -1,6 +1,6 @@ - ЮТОбработчикиСобытий + ОбработчикиСобытий ru Обработчики событий @@ -10,10 +10,9 @@ ru Подключаемые обработчики событий тестов - CommonModule.МокитоСлужебный - CommonModule.ЮТИсполнительСлужебныйКлиент CommonModule.ЮТЛогированиеСлужебный - CommonModule.ЮТТестовыеДанныеСлужебный - CommonModule.ЮТУтверждения - Subsystem.ЮТДинамическиПодключаемые + ЗагрузкаТестов + Инициализация + ИсполнениеТестов + Subsystem.ЮТПодключаемыеМодули diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\244\320\276\321\200\320\274\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\236\321\202\321\207\320\265\321\202\320\260/CommandInterface.cmi" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\244\320\276\321\200\320\274\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\236\321\202\321\207\320\265\321\202\320\260/CommandInterface.cmi" new file mode 100644 index 000000000..0cf6de8a4 --- /dev/null +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\244\320\276\321\200\320\274\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\236\321\202\321\207\320\265\321\202\320\260/CommandInterface.cmi" @@ -0,0 +1,2 @@ + + diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\270\320\275\320\260\320\274\320\270\321\207\320\265\321\201\320\272\320\270\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265/Subsystems/\320\256\320\242\320\244\320\276\321\200\320\274\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\236\321\202\321\207\320\265\321\202\320\260/\320\256\320\242\320\244\320\276\321\200\320\274\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\236\321\202\321\207\320\265\321\202\320\260.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\244\320\276\321\200\320\274\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\236\321\202\321\207\320\265\321\202\320\260/\320\244\320\276\321\200\320\274\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\236\321\202\321\207\320\265\321\202\320\260.mdo" similarity index 81% rename from "exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\270\320\275\320\260\320\274\320\270\321\207\320\265\321\201\320\272\320\270\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265/Subsystems/\320\256\320\242\320\244\320\276\321\200\320\274\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\236\321\202\321\207\320\265\321\202\320\260/\320\256\320\242\320\244\320\276\321\200\320\274\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\236\321\202\321\207\320\265\321\202\320\260.mdo" rename to "exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\244\320\276\321\200\320\274\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\236\321\202\321\207\320\265\321\202\320\260/\320\244\320\276\321\200\320\274\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\236\321\202\321\207\320\265\321\202\320\260.mdo" index da86b8b76..c510003c9 100644 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\270\320\275\320\260\320\274\320\270\321\207\320\265\321\201\320\272\320\270\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265/Subsystems/\320\256\320\242\320\244\320\276\321\200\320\274\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\236\321\202\321\207\320\265\321\202\320\260/\320\256\320\242\320\244\320\276\321\200\320\274\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\236\321\202\321\207\320\265\321\202\320\260.mdo" +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\244\320\276\321\200\320\274\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\236\321\202\321\207\320\265\321\202\320\260/\320\244\320\276\321\200\320\274\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\236\321\202\321\207\320\265\321\202\320\260.mdo" @@ -1,6 +1,6 @@ - ЮТФормированиеОтчета + ФормированиеОтчета ru Формирование отчета @@ -13,5 +13,5 @@ CommonModule.ЮТОтчетAllureСлужебный CommonModule.ЮТОтчетJSONСлужебный CommonModule.ЮТОтчетJUnitСлужебный - Subsystem.ЮТДинамическиПодключаемые + Subsystem.ЮТПодключаемыеМодули diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\270\320\275\320\260\320\274\320\270\321\207\320\265\321\201\320\272\320\270\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265/\320\256\320\242\320\224\320\270\320\275\320\260\320\274\320\270\321\207\320\265\321\201\320\272\320\270\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270.mdo" similarity index 73% rename from "exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\270\320\275\320\260\320\274\320\270\321\207\320\265\321\201\320\272\320\270\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265/\320\256\320\242\320\224\320\270\320\275\320\260\320\274\320\270\321\207\320\265\321\201\320\272\320\270\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265.mdo" rename to "exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270.mdo" index 6ec3f85f0..0633d2b05 100644 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\224\320\270\320\275\320\260\320\274\320\270\321\207\320\265\321\201\320\272\320\270\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265/\320\256\320\242\320\224\320\270\320\275\320\260\320\274\320\270\321\207\320\265\321\201\320\272\320\270\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265.mdo" +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270.mdo" @@ -1,6 +1,6 @@ - ЮТДинамическиПодключаемые + ЮТПодключаемыеМодули ru Динамически подключаемые @@ -10,6 +10,6 @@ ru Содержит подсистемы с динамически подключаемой (загружаемой) функциональностью - ЮТОбработчикиСобытий - ЮТФормированиеОтчета + ОбработчикиСобытий + ФормированиеОтчета diff --git "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271.mdo" "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271.mdo" index 56ec76599..fc26f7c5c 100644 --- "a/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271.mdo" +++ "b/exts/yaxunit/src/Subsystems/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271/\320\256\320\242\320\237\321\203\320\261\320\273\320\270\321\207\320\275\321\213\320\271.mdo" @@ -16,8 +16,10 @@ CommonModule.Мокито CommonModule.МокитоОбучение + CommonModule.МокитоПерехват CommonModule.МокитоПроверки CommonModule.ЮТест + CommonModule.ЮТЗависимости CommonModule.ЮТЗапросы CommonModule.ЮТИсключения CommonModule.ЮТКоллекции @@ -33,6 +35,7 @@ CommonModule.ЮТПодражатель_Компании CommonModule.ЮТПодражатель_Люди CommonModule.ЮТПредикаты + CommonModule.ЮТРегистрацияОшибок CommonModule.ЮТСтроки CommonModule.ЮТТестовыеДанные CommonModule.ЮТТесты @@ -43,6 +46,7 @@ DataProcessor.ЮТHTTPServiceRequest DataProcessor.ЮТHTTPСервисЗапрос DataProcessor.ЮТRecordSet + DataProcessor.ЮТКонструкторОбъектаXDTO DataProcessor.ЮТКонструкторТестовыхДанных DataProcessor.ЮТЮнитТесты diff --git a/fixtures/junit/JUnit.xsd b/fixtures/junit/JUnit.xsd new file mode 100644 index 000000000..76d7e40b9 --- /dev/null +++ b/fixtures/junit/JUnit.xsd @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git "a/tests/src/CommonModules/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260YAxUnit/Module.bsl" "b/tests/src/CommonModules/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260YAxUnit/Module.bsl" new file mode 100644 index 000000000..42d54d6a4 --- /dev/null +++ "b/tests/src/CommonModules/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260YAxUnit/Module.bsl" @@ -0,0 +1,31 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область СлужебныйПрограммныйИнтерфейс + +// Установить настройки по умолчанию. +// +// Параметры: +// ПараметрыЗапуска - см. ЮТФабрика.ПараметрыЗапуска +Процедура УстановитьПараметрыЗапускаПоУмолчанию(ПараметрыЗапуска) Экспорт + + ПараметрыЗапуска.settings.ВТранзакции = Истина; + +КонецПроцедуры + +#КонецОбласти diff --git "a/tests/src/CommonModules/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260YAxUnit/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260YAxUnit.mdo" "b/tests/src/CommonModules/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260YAxUnit/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260YAxUnit.mdo" new file mode 100644 index 000000000..521d95740 --- /dev/null +++ "b/tests/src/CommonModules/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260YAxUnit/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260YAxUnit.mdo" @@ -0,0 +1,10 @@ + + + НастройкаYAxUnit + + ru + Настройка YAxUnit + + true + true + diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276/Module.bsl" index 172a6d0be..b44f7343a 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\234\320\276\320\272\320\270\321\202\320\276/Module.bsl" @@ -20,7 +20,7 @@ Процедура ИсполняемыеСценарии() Экспорт - ЮТТесты.ВТранзакции() + ЮТТесты .ДобавитьТест("Обучение") .ДобавитьТест("Обучение_ЦепочкаВызовов") .ДобавитьТест("Проверить") diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\236\320\261\321\211\320\270\320\271/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\236\320\261\321\211\320\270\320\271/Module.bsl" index 311c0a5f3..98f2def77 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\236\320\261\321\211\320\270\320\271/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\236\320\261\321\211\320\270\320\271/Module.bsl" @@ -25,7 +25,7 @@ .ДобавитьТест("ВывестиВКонсоль") .ДобавитьСерверныйТест("Менеджер") .ДобавитьТест("ЗначениеСвойства") - ; + ; КонецПроцедуры @@ -38,7 +38,7 @@ Дельта = ТекущаяУниверсальнаяДатаВМиллисекундах() - Начало; ЮТест.ОжидаетЧто(Дельта) - .МеждуИсключаяГраницы(3000, 3999); + .МеждуВключаяГраницы(3000, 3999); КонецПроцедуры diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" new file mode 100644 index 000000000..055a34617 --- /dev/null +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -0,0 +1,131 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область СлужебныйПрограммныйИнтерфейс + +Процедура ИсполняемыеСценарии() Экспорт + + ЮТТесты.ЗависитОт().ФайлыПроекта(".gitignore") + .ДобавитьТест("УникальнаяЗависимость") + .ДобавитьТест("ДанныеЗависимости").ЗависитОт().ФайлыПроекта(".gitignore") + .ДобавитьТест("ДанныеЗависимости_Каталог").ЗависитОт().ФайлыПроекта(".github") + .ДобавитьТест("ДанныеЗависимости_НеизвестныйФайл").ЗависитОт().ФайлыПроекта("НеизвестныйФайл") + .ДобавитьСерверныйТест("ФабрикаJUnit").ЗависитОт().ФабрикаXDTO("fixtures/junit") + ; + +КонецПроцедуры + +Процедура УникальнаяЗависимость() Экспорт + + Зависимости = Новый Соответствие(); + + Зависимость1 = ЮТЗависимостиСлужебный.УникальнаяЗависимость(Зависимости, НоваяЗависимость("Зависимость 1")); + Зависимость2 = ЮТЗависимостиСлужебный.УникальнаяЗависимость(Зависимости, НоваяЗависимость("ЗавИсимость 1")); + Зависимость3 = ЮТЗависимостиСлужебный.УникальнаяЗависимость(Зависимости, НоваяЗависимость("ЗависИМОСТЬ 1", "Модуль.Метод")); + Зависимость4 = ЮТЗависимостиСлужебный.УникальнаяЗависимость(Зависимости, НоваяЗависимость("Зависимость 1", , "Строка 1")); + Зависимость5 = ЮТЗависимостиСлужебный.УникальнаяЗависимость(Зависимости, НоваяЗависимость("Зависимость 1", , "Строка 1")); + + ЮТест.ОжидаетЧто(Зависимости) + .ИмеетДлину(2); + + ЮТест.ОжидаетЧто(Зависимость1) + .ИмеетТип("ФиксированнаяСтруктура") + .Равно(Зависимость2) + .Равно(Зависимость3) + .НеРавно(Зависимость4); + ЮТест.ОжидаетЧто(Зависимость4, "Зависимость с параметром") + .ИмеетТип("ФиксированнаяСтруктура") + .Равно(Зависимость5) + ; + +КонецПроцедуры + +Процедура ДанныеЗависимости() Экспорт + + ПолноеИмяФайла = ЮТест.Зависимость(ЮТЗависимости.ФайлыПроекта(".gitignore")).ПолноеИмя; + + ЮТест.ОжидаетЧто(ЮТФайлы.Существует(ПолноеИмяФайла), "Файл каталога проекта не существует") + .ЭтоИстина(); + + Данные = ЮТОбщий.ДанныеТекстовогоФайла(ПолноеИмяФайла); + ЮТест.ОжидаетЧто(Данные, "Содержимое файла") + .Содержит("ConfigDumpInfo.xml"); + +КонецПроцедуры + +Процедура ДанныеЗависимости_НеизвестныйФайл() Экспорт + + ВызватьИсключение "Тест не должен быть вызван"; + +КонецПроцедуры + +Процедура ДанныеЗависимости_Каталог() Экспорт + + ПолноеИмя = ЮТест.Зависимость(ЮТЗависимости.ФайлыПроекта(".github")).ПолноеИмя; + + ЮТест.ОжидаетЧто(ЮТФайлы.Существует(ПолноеИмя), "Каталог проекта не доступен") + .ЭтоИстина(); + + ЮТест.ОжидаетЧто(ЮТФайлы.ЭтоКаталог(ПолноеИмя), "Это не каталог") + .ЭтоИстина(); + + ЮТест.ОжидаетЧто(ЮТФайлы.Существует(ЮТФайлы.ОбъединитьПути(ПолноеИмя, "workflows", "main-build.yml")), "Файл проекта не доступен") + .ЭтоИстина(); + +КонецПроцедуры + +Процедура ФабрикаJUnit() Экспорт + + Фабрика = ЮТест.Зависимость(ЮТЗависимости.ФабрикаXDTO("fixtures/junit")).Фабрика; + + ТестовыйНабор = ЮТест.Данные().КонструкторОбъектаXDTO("testsuite", "http://junit.org/schema", Фабрика) + .ФикцияНезаполненных() + .ДанныеОбъекта(); + + ЮТест.ОжидаетЧто(ТестовыйНабор) + .ИмеетТип(Тип("ОбъектXDTO")) + .Существует() + .ИмеетСвойство("properties") + .ИмеетСвойство("testcase") + .ИмеетСвойство("failures"); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция НоваяЗависимость(Идентификатор, Метод = Неопределено, Параметр1 = Неопределено, Параметр2 = Неопределено) + + Описание = ЮТФабрика.НовоеОписаниеЗависимости(); + Описание.Идентификатор = Идентификатор; + Описание.МетодРеализации = ?(Метод = Неопределено, Идентификатор, Метод); + + Если Параметр1 <> Неопределено Тогда + Описание.Параметры.Добавить(Параметр1); + КонецЕсли; + + Если Параметр2 <> Неопределено Тогда + Описание.Параметры.Добавить(Параметр2); + КонецЕсли; + + Возврат Описание; + +КонецФункции + +#КонецОбласти diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\236\320\234_\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\236\320\234_\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" new file mode 100644 index 000000000..5b178f6bb --- /dev/null +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/\320\236\320\234_\320\256\320\242\320\227\320\260\320\262\320\270\321\201\320\270\320\274\320\276\321\201\321\202\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.mdo" @@ -0,0 +1,7 @@ + + + ОМ_ЮТЗависимостиСлужебный + true + true + true + diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213/Module.bsl" index e5bc450b1..ae504ca5b 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\227\320\260\320\277\321\200\320\276\321\201\321\213/Module.bsl" @@ -20,7 +20,7 @@ Процедура ИсполняемыеСценарии() Экспорт - ЮТТесты.ВТранзакции().УдалениеТестовыхДанных() + ЮТТесты.УдалениеТестовыхДанных() .ДобавитьТест("ЗначенияРеквизитов") .ДобавитьТест("ЗначениеРеквизита") .ДобавитьТест("ТаблицаСодержитЗаписи") diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" index 073c741ee..74399533e 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Module.bsl" @@ -21,10 +21,10 @@ Процедура ИсполняемыеСценарии() Экспорт ЮТТесты - .ДобавитьТест("ЛомающийКонтекстТест").ВТранзакции() + .ДобавитьТест("ЛомающийКонтекстТест") .ДобавитьТест("ПроверкаТранзакции") - .СПараметрами(Ложь) - .СПараметрами(Истина).ВТранзакции() + .СПараметрами(Ложь).ВТранзакции(Ложь) + .СПараметрами(Истина).ВТранзакции(Истина) ; КонецПроцедуры diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Module.bsl" index 500243aee..8bf200661 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\232\320\276\320\275\321\201\321\202\321\200\321\203\320\272\321\202\320\276\321\200\320\242\320\265\321\201\321\202\320\276\320\262\321\213\321\205\320\224\320\260\320\275\320\275\321\213\321\205/Module.bsl" @@ -20,7 +20,7 @@ Процедура ИсполняемыеСценарии() Экспорт - ЮТТесты.ВТранзакции().УдалениеТестовыхДанных() + ЮТТесты.УдалениеТестовыхДанных() .ДобавитьТест("ЗаполнитьСправочник") .ДобавитьТест("ЗаполнитьДокумент") .ДобавитьТест("СоздатьЗаписьРегистраСведений") @@ -31,6 +31,7 @@ .ДобавитьТест("ФикцияОбязательныхПолей") .ДобавитьТест("СоздатьГруппу") .ДобавитьТест("УстановитьРеквизиты") + .ДобавитьТест("УстановитьСсылкуНового") ; КонецПроцедуры @@ -321,4 +322,31 @@ КонецПроцедуры +Процедура УстановитьСсылкуНового() Экспорт + + Конструктор = ЮТест.Данные().КонструкторОбъекта("Справочники.Товары"); + + УникальныйИдентификатор = Новый УникальныйИдентификатор(); + Ссылка = Конструктор.УстановитьСсылкуНового(УникальныйИдентификатор).Записать(); + ЮТест.ОжидаетЧто(Ссылка.УникальныйИдентификатор(), "Уникальный идентификатор") + .Равно(УникальныйИдентификатор); + + УникальныйИдентификатор = Новый УникальныйИдентификатор(); + УникальныйИдентификаторСтрокой = Строка(УникальныйИдентификатор); + Ссылка = Конструктор.УстановитьСсылкуНового(УникальныйИдентификаторСтрокой).Записать(); + ЮТест.ОжидаетЧто(Ссылка.УникальныйИдентификатор(), "Уникальный идентификатор строкой") + .Равно(УникальныйИдентификатор); + + СлучайноеЧисло = ЮТест.Данные().СлучайноеЧисло(); + СлучайноеСтрока = ЮТест.Данные().СлучайнаяСтрока(); + ЮТест + .ОжидаетЧто(Конструктор, "Число") + .Метод("УстановитьСсылкуНового").Параметр(СлучайноеЧисло) + .ВыбрасываетИсключение("Неправильный тип значения для ссылки нового") + .Что(Конструктор, "Строка") + .Метод("УстановитьСсылкуНового").Параметр(СлучайноеСтрока) + .ВыбрасываетИсключение("Неправильный тип значения для ссылки нового"); + +КонецПроцедуры + #КонецОбласти diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" new file mode 100644 index 000000000..44e67f59d --- /dev/null +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/Module.bsl" @@ -0,0 +1,66 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// Copyright 2021-2024 BIA-Technologies Limited Liability Company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область СлужебныйПрограммныйИнтерфейс + +Процедура ИсполняемыеСценарии() Экспорт + + ЮТТесты + .ДобавитьТест("ПодсистемыПодключаемыхМодулей") + .ДобавитьТест("ОбработчикиСобытий") + .ДобавитьТест("ПодключаемыеМодулиПодсистемы") + ; + +КонецПроцедуры + +Процедура ПодсистемыПодключаемыхМодулей() Экспорт + + ЮТест.ОжидаетЧто(ЮТМетаданныеСлужебныйПовтИсп.ПодсистемыПодключаемыхМодулей()) + .Заполнено() + .Содержит("ЮТПодключаемыеМодули") + .Содержит("Тесты_ЮТПодключаемыеМодули") + ; + +КонецПроцедуры + +Процедура ОбработчикиСобытий() Экспорт + + ЮТест.ОжидаетЧто(ЮТПодключаемыеМодулиСлужебныйВызовСервера.ОбработчикиСобытий("Инициализация")) + .Заполнено() + .Содержит("НастройкаYAxUnit") + .Содержит("ЮТЗависимостиСлужебный") + .Содержит("ЮТЛогированиеСлужебный") + .ИмеетДлинуБольше(2) + ; + +КонецПроцедуры + +Процедура ПодключаемыеМодулиПодсистемы() Экспорт + + ЮТест.ОжидаетЧто(ЮТПодключаемыеМодулиСлужебныйВызовСервера.ПодключаемыеМодулиПодсистемы("ОбработчикиСобытий")) + .Заполнено() + .Содержит("ЮТЛогированиеСлужебный") + ; + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#КонецОбласти diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" new file mode 100644 index 000000000..6b472ef2a --- /dev/null +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\222\321\213\320\267\320\276\320\262\320\241\320\265\321\200\320\262\320\265\321\200\320\260.mdo" @@ -0,0 +1,6 @@ + + + ОМ_ЮТПодключаемыеМодулиСлужебныйВызовСервера + true + true + diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\221\320\260\320\275\320\272\320\270/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\221\320\260\320\275\320\272\320\270/Module.bsl" index 455bd130b..5e66f5b7c 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\221\320\260\320\275\320\272\320\270/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\221\320\260\320\275\320\272\320\270/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -28,26 +28,6 @@ КонецПроцедуры -#Область События - -Процедура ПередВсемиТестами() Экспорт - -КонецПроцедуры - -Процедура ПередКаждымТестом() Экспорт - -КонецПроцедуры - -Процедура ПослеКаждогоТеста() Экспорт - -КонецПроцедуры - -Процедура ПослеВсехТестов() Экспорт - -КонецПроцедуры - -#КонецОбласти - Процедура БИК() Экспорт БИК = ЮТест.Данные().Подражатель().Банки().БИК(); ЮТест.ОжидаетЧто(БИК) @@ -58,25 +38,22 @@ КонецПроцедуры Процедура НомерСчета() Экспорт + БИК = ЮТест.Данные().Подражатель().Банки().БИК(); КодВалюты = "978"; НомерСчета = ЮТест.Данные().Подражатель().Банки().НомерСчета(БИК, КодВалюты); - + ЮТест.ОжидаетЧто(НомерСчета) .ИмеетТип("Строка") .Заполнено() .ИмеетДлину(20) ; - + КодВалютыИзСчета = Сред(НомерСчета, 6, 3); ЮТест.ОжидаетЧто(КодВалютыИзСчета) .Равно(КодВалюты) ; - + КонецПроцедуры #КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -#КонецОбласти diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\232\320\276\320\274\320\277\320\260\320\275\320\270\320\270/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\232\320\276\320\274\320\277\320\260\320\275\320\270\320\270/Module.bsl" index fe3ccd688..f8a8c65b1 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\232\320\276\320\274\320\277\320\260\320\275\320\270\320\270/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\237\320\276\320\264\321\200\320\260\320\266\320\260\321\202\320\265\320\273\321\214_\320\232\320\276\320\274\320\277\320\260\320\275\320\270\320\270/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -26,42 +26,24 @@ .ДобавитьТест("ИНН") .ДобавитьТест("КПП") ; - -КонецПроцедуры - -#Область События - -Процедура ПередВсемиТестами() Экспорт - -КонецПроцедуры - -Процедура ПередКаждымТестом() Экспорт - -КонецПроцедуры - -Процедура ПослеКаждогоТеста() Экспорт - + КонецПроцедуры -Процедура ПослеВсехТестов() Экспорт - -КонецПроцедуры - -#КонецОбласти - Процедура Наименование() Экспорт + Имя = ЮТест.Данные().Подражатель().Компании().Наименование(); ЮТест.ОжидаетЧто(Имя) .ИмеетТип("Строка") .Заполнено() ; - + ЮТест.ОжидаетЧто(СтрДлина(Имя)) .Больше(1) ; КонецПроцедуры Процедура ИНН() Экспорт + ИНН = ЮТест.Данные().Подражатель().Компании().ИНН("77"); ЮТест.ОжидаетЧто(ИНН) .ИмеетТип("Строка") @@ -70,9 +52,11 @@ .НачинаетсяС("77") ; ЮТЛогирование.Отладка("ИНН: " + ИНН); + КонецПроцедуры Процедура КПП() Экспорт + ИНН = ЮТест.Данные().Подражатель().Компании().КПП("7701"); ЮТест.ОжидаетЧто(ИНН) .ИмеетТип("Строка") @@ -80,10 +64,7 @@ .ИмеетДлину(9) .НачинаетсяС("7701") ; + КонецПроцедуры #КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -#КонецОбласти diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" index 897b0ee02..763942050 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265/Module.bsl" @@ -20,9 +20,7 @@ Процедура ИсполняемыеСценарии() Экспорт - ЮТТесты - .ВТранзакции() - .УдалениеТестовыхДанных() + ЮТТесты.УдалениеТестовыхДанных() .ДобавитьТест("Удалить") .ДобавитьТест("ВариантыПараметров") .ДобавитьТест("СоздатьГруппу") diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index b137b683d..7e366d4b8 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\242\320\265\321\201\321\202\320\276\320\262\321\213\320\265\320\224\320\260\320\275\320\275\321\213\320\265\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -23,9 +23,7 @@ КодТовара = ЮТОбщий.ЧислоВСтроку(ЮТест.Данные().СлучайноеПоложительноеЧисло(999999999)); Период = ТекущаяДата(); - ЮТТесты - .ВТранзакции() - .УдалениеТестовыхДанных() + ЮТТесты.УдалениеТестовыхДанных() .ДобавитьТест("Фикция") .СПараметрами(Новый ОписаниеТипов("Число")) .СПараметрами(Новый ОписаниеТипов("Строка")) diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" index a6403d1e4..170406dbb 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217/Module.bsl" @@ -56,7 +56,7 @@ .ДобавитьТест("ВыбрасываетИсключение") .ДобавитьТест("НеВыбрасываетИсключение") .ДобавитьТест("ИмеетМетод") - .ДобавитьСерверныйТест("ПроверкаМетодаВТранзакции") + .ДобавитьСерверныйТест("ПроверкаМетодаВТранзакции").ВТранзакции(Ложь) .ДобавитьТест("ПроверкаМетодаВТранзакцииНаКлиенте", , , "КлиентУправляемоеПриложение") .ДобавитьСерверныйТест("СравнениеСложныхОбъектов") .ДобавитьТест("ФормированиеСообщения") diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\230\320\221/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\230\320\221/Module.bsl" index 08cd35dab..b6383bccc 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\230\320\221/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\243\321\202\320\262\320\265\321\200\320\266\320\264\320\265\320\275\320\270\321\217\320\230\320\221/Module.bsl" @@ -1,6 +1,6 @@ //©///////////////////////////////////////////////////////////////////////////©// // -// Copyright 2021-2023 BIA-Technologies Limited Liability Company +// Copyright 2021-2024 BIA-Technologies Limited Liability Company // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -20,7 +20,7 @@ Процедура ИсполняемыеСценарии() Экспорт - ЮТТесты.ВТранзакции().УдалениеТестовыхДанных() + ЮТТесты.УдалениеТестовыхДанных() .ДобавитьТест("СодержитЗаписи") .ДобавитьТест("НеСодержитЗаписи") .ДобавитьТест("СообщенияОбОшибках") diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" index 62c3449ec..d970c6e1f 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\247\320\270\321\202\320\260\321\202\320\265\320\273\321\214\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Module.bsl" @@ -100,7 +100,7 @@ Наборы = ЮТЧитательСлужебный.ЗагрузитьТесты(ПараметрыЗапуска); ЮТест.ОжидаетЧто(Наборы, "Прочитанные наборы расширения tests") - .ИмеетДлину(33); + .ИмеетДлину(35); КонецПроцедуры diff --git "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\265\321\201\321\202/Module.bsl" "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\265\321\201\321\202/Module.bsl" index 6e625f3f6..55c8effa5 100644 --- "a/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\265\321\201\321\202/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\234_\320\256\320\242\320\265\321\201\321\202/Module.bsl" @@ -24,6 +24,7 @@ .ДобавитьТестовыйНабор("ОсновнойНабор") .ДобавитьТест("Пропустить") .ДобавитьТест("ПроверкаКонтекста") + .ДобавитьСерверныйТест("ТранзакцияПоУмолчаниюАктивна") .ДобавитьТестовыйНабор("ПереопределенныйНабор").Перед("Перед_ПереопределенныйНабор") .ДобавитьТест("ПроверкаПереопределенногоКонтекста").Перед("Перед_ПроверкаПереопределенногоКонтекста") .ДобавитьТестовыйНабор("ПовторнаяПроверкаКонтекста") @@ -71,8 +72,14 @@ Процедура ПослеВсехТестов() Экспорт ЮТест.Контекст().Значение("Коллекция").Добавить("ПослеВсехТестов"); - ЮТест.ОжидаетЧто(ЮТест.Контекст().Значение("Коллекция")).ИмеетДлину(16); - +#Если Сервер Тогда + ЮТест.ОжидаетЧто(ЮТест.Контекст().Значение("Коллекция")) + .ИмеетДлину(18); // Количество вызванных обработчиков событий +#Иначе + ЮТест.ОжидаетЧто(ЮТест.Контекст().Значение("Коллекция")) + .ИмеетДлину(16); // Количество вызванных обработчиков событий +#КонецЕсли + КонецПроцедуры Процедура Пропустить() Экспорт @@ -135,4 +142,13 @@ КонецПроцедуры +#Если Сервер Тогда +Процедура ТранзакцияПоУмолчаниюАктивна() Экспорт + + ЮТест.ОжидаетЧто(ТранзакцияАктивна(), "Транзакция из настроек по умолчанию не активна") + .ЭтоИстина(); + +КонецПроцедуры +#КонецЕсли + #КонецОбласти diff --git "a/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242HTTP\320\241\320\265\321\200\320\262\320\270\321\201\320\227\320\260\320\277\321\200\320\276\321\201/Module.bsl" "b/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242HTTP\320\241\320\265\321\200\320\262\320\270\321\201\320\227\320\260\320\277\321\200\320\276\321\201/Module.bsl" index d47a7acf9..d4c2412b6 100644 --- "a/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242HTTP\320\241\320\265\321\200\320\262\320\270\321\201\320\227\320\260\320\277\321\200\320\276\321\201/Module.bsl" +++ "b/tests/src/CommonModules/\320\236\320\261\321\200_\320\256\320\242HTTP\320\241\320\265\321\200\320\262\320\270\321\201\320\227\320\260\320\277\321\200\320\276\321\201/Module.bsl" @@ -23,7 +23,7 @@ ЮТТесты .ДобавитьТест("Конструктор") .ДобавитьТест("УстановитьТело") - ; + ; КонецПроцедуры diff --git a/tests/src/Configuration/Configuration.mdo b/tests/src/Configuration/Configuration.mdo index c233f203e..19ac4171e 100644 --- a/tests/src/Configuration/Configuration.mdo +++ b/tests/src/Configuration/Configuration.mdo @@ -22,9 +22,11 @@ ru + Subsystem.Тесты_ЮТПодключаемыеМодули CommonTemplate.ЮТ_МакетТестовыхДанных CommonTemplate.ЮТ_ТестовыеДанныеMarkdown CommonModule.Интеграция + CommonModule.НастройкаYAxUnit CommonModule.Обр_ЮТHTTPСервисЗапрос CommonModule.Обр_ЮТRecordSet_МО CommonModule.Обр_ЮТКонструкторОбъектаXDTO_МО @@ -35,6 +37,7 @@ CommonModule.ОМ_ОшибкаЗагрузкиСценариев CommonModule.ОМ_ЮТест CommonModule.ОМ_ЮТестПереопределяемый + CommonModule.ОМ_ЮТЗависимостиСлужебный CommonModule.ОМ_ЮТЗапросы CommonModule.ОМ_ЮТИсполнительСлужебныйКлиент CommonModule.ОМ_ЮТИсполнительСлужебныйКлиентСервер @@ -43,6 +46,7 @@ CommonModule.ОМ_ЮТМетаданные CommonModule.ОМ_ЮТОтчетAllureСлужебный CommonModule.ОМ_ЮТОтчетСлужебный + CommonModule.ОМ_ЮТПодключаемыеМодулиСлужебныйВызовСервера CommonModule.ОМ_ЮТПодражатель_Банки CommonModule.ОМ_ЮТПодражатель_Компании CommonModule.ОМ_ЮТПодражатель_Люди diff --git "a/tests/src/Subsystems/\320\242\320\265\321\201\321\202\321\213_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/CommandInterface.cmi" "b/tests/src/Subsystems/\320\242\320\265\321\201\321\202\321\213_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/CommandInterface.cmi" new file mode 100644 index 000000000..0cf6de8a4 --- /dev/null +++ "b/tests/src/Subsystems/\320\242\320\265\321\201\321\202\321\213_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/CommandInterface.cmi" @@ -0,0 +1,2 @@ + + diff --git "a/tests/src/Subsystems/\320\242\320\265\321\201\321\202\321\213_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/CommandInterface.cmi" "b/tests/src/Subsystems/\320\242\320\265\321\201\321\202\321\213_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/CommandInterface.cmi" new file mode 100644 index 000000000..0cf6de8a4 --- /dev/null +++ "b/tests/src/Subsystems/\320\242\320\265\321\201\321\202\321\213_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/CommandInterface.cmi" @@ -0,0 +1,2 @@ + + diff --git "a/tests/src/Subsystems/\320\242\320\265\321\201\321\202\321\213_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217/CommandInterface.cmi" "b/tests/src/Subsystems/\320\242\320\265\321\201\321\202\321\213_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217/CommandInterface.cmi" new file mode 100644 index 000000000..0cf6de8a4 --- /dev/null +++ "b/tests/src/Subsystems/\320\242\320\265\321\201\321\202\321\213_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217/CommandInterface.cmi" @@ -0,0 +1,2 @@ + + diff --git "a/tests/src/Subsystems/\320\242\320\265\321\201\321\202\321\213_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217.mdo" "b/tests/src/Subsystems/\320\242\320\265\321\201\321\202\321\213_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217.mdo" new file mode 100644 index 000000000..cbee7ab40 --- /dev/null +++ "b/tests/src/Subsystems/\320\242\320\265\321\201\321\202\321\213_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/Subsystems/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217/\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217.mdo" @@ -0,0 +1,11 @@ + + + Инициализация + + ru + Инициализация + + true + CommonModule.НастройкаYAxUnit + Subsystem.Тесты_ЮТПодключаемыеМодули.Subsystem.ОбработчикиСобытий + diff --git "a/tests/src/Subsystems/\320\242\320\265\321\201\321\202\321\213_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271.mdo" "b/tests/src/Subsystems/\320\242\320\265\321\201\321\202\321\213_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271.mdo" new file mode 100644 index 000000000..487d28eae --- /dev/null +++ "b/tests/src/Subsystems/\320\242\320\265\321\201\321\202\321\213_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/Subsystems/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271/\320\236\320\261\321\200\320\260\320\261\320\276\321\202\321\207\320\270\320\272\320\270\320\241\320\276\320\261\321\213\321\202\320\270\320\271.mdo" @@ -0,0 +1,11 @@ + + + ОбработчикиСобытий + + ru + Обработчики событий + + true + Инициализация + Subsystem.Тесты_ЮТПодключаемыеМодули + diff --git "a/tests/src/Subsystems/\320\242\320\265\321\201\321\202\321\213_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/\320\242\320\265\321\201\321\202\321\213_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270.mdo" "b/tests/src/Subsystems/\320\242\320\265\321\201\321\202\321\213_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/\320\242\320\265\321\201\321\202\321\213_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270.mdo" new file mode 100644 index 000000000..eeba81f2e --- /dev/null +++ "b/tests/src/Subsystems/\320\242\320\265\321\201\321\202\321\213_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270/\320\242\320\265\321\201\321\202\321\213_\320\256\320\242\320\237\320\276\320\264\320\272\320\273\321\216\321\207\320\260\320\265\320\274\321\213\320\265\320\234\320\276\320\264\321\203\320\273\320\270.mdo" @@ -0,0 +1,10 @@ + + + Тесты_ЮТПодключаемыеМодули + + ru + Подключаемые модули + + true + ОбработчикиСобытий +