diff --git a/documentation/docs/user-api/test-data/test-data-deletion.md b/documentation/docs/user-api/test-data/test-data-deletion.md index 27bf3f94..f2282dd4 100644 --- a/documentation/docs/user-api/test-data/test-data-deletion.md +++ b/documentation/docs/user-api/test-data/test-data-deletion.md @@ -32,7 +32,7 @@ tags: [Getting started, Test data] Такие данные необходимо удалять самостоятельно при необходимости. ::: -## Механизма удаления тестовых данных +## Механизм удаления тестовых данных Для включения нужно при регистрации теста вызвать метод `УдалениеТестовыхДанных()` @@ -58,7 +58,11 @@ tags: [Getting started, Test data] * Удалять данные созданные с клиента * Удалять данные созданные вне теста (в обработчиках событий) -:::tip +:::caution Удаление и только +Механизм только удаляет созданные объекты, изменения не откатываются +::: + +:::tip Разное время жизни данных Механизм понимает в рамках какого контекста исполнения (тест, набор, модуль) были созданы данные и удаляет их по выходу из него. ::: @@ -66,7 +70,7 @@ tags: [Getting started, Test data] ```bsl title=УдалениеТестовыхДанныхВремяЖизни.bsl Процедура ПередВсемиТестами() Экспорт - ДанныеМодуля = ЮТест.Данные().СоздатьЭлемент(); // Не будет удалена + ДанныеМодуля = ЮТест.Данные().СоздатьЭлемент(); КонецПроцедуры Процедура ПередТестовымНабором() Экспорт @@ -84,13 +88,12 @@ tags: [Getting started, Test data] Для переменных получим разное время жизни -* `ДанныеМодуля` - Не будет удалена, проблема будет решена в ближайшем будущем. +* `ДанныеМодуля` - Живет, пока исполняются тесты модуля одного контекста (Сервер, Клиент). * `ДанныеНабора` - Живет, пока исполняются тесты набора. -* `ДанныеТеста` и `Ссылка`- Живут, пока исполняется тест. +* `ДанныеТеста` и `Ссылка` - Живут, пока исполняется тест. :::caution Механизм имеет ряд ограничений и не работает для следующих кейсов: * Данные создан не через API -* Данные созданы в событии "ПередВсемиТестами" (работает для "ПередТестовымНабором") * Данные созданы в клиентском модуле через вызов своего серверного модуля, даже если он использует API тестового движка ::: diff --git a/exts/yaxunit/src/CommonModules/ЮТТесты/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТТесты/Module.bsl index 00d37cb9..a608db4e 100644 --- a/exts/yaxunit/src/CommonModules/ЮТТесты/Module.bsl +++ b/exts/yaxunit/src/CommonModules/ЮТТесты/Module.bsl @@ -166,10 +166,10 @@ // Устанавливает настройку удаления созданных тестовых данных // В отличии от использования транзакции: // -// * Умеет работь с данными созданными на клиенте +// * Умеет работать с данными созданными на клиенте // * Только удаляет созданные данные и не откатывает изменения объектов // * Работает с данными созданными через API работы с тестовыми данными -// * Удаляет данные созданные вне теста (в обработчиках событий, например, ПередТестовымНабором) +// * Удаляет данные созданные вне теста (в обработчиках событий, например, ПередВсемиТестами и ПередТестовымНабором) // // Параметры: // УдалятьСозданныеДанные - Булево diff --git a/tests/src/CommonModules/ОМ_ЮТТестовыеДанныеСлужебный/Module.bsl b/tests/src/CommonModules/ОМ_ЮТТестовыеДанныеСлужебный/Module.bsl index 2d0af530..b137b683 100644 --- a/tests/src/CommonModules/ОМ_ЮТТестовыеДанныеСлужебный/Module.bsl +++ b/tests/src/CommonModules/ОМ_ЮТТестовыеДанныеСлужебный/Module.bsl @@ -107,6 +107,7 @@ Ссылки = Новый Структура("Набор, Тест"); ЮТест.Контекст().УстановитьЗначение("Ссылки", Ссылки); + СоздатьСсылку("Модуль", "Модуль"); // Если данные созданные в этом событии не удаляются то прогон в другом контексте долже упасть (на сервере) КонецПроцедуры