--- tags: [Начало, Контекст] --- # Контекст Одним из важнейших блоков работы тестового движка является механизм контекстов. Он позволяет: 1. Хранить промежуточные данные и обеспечивать работу механизма текучих выражений 2. Передавать между тестами необходимые данные 3. Удалять тестовые данные И имеет несколько ограничений: 1. Не синхронизируется между клиентом и сервером 2. Тестовые контексты имеют ограниченное время жизни, например, контекст теста "живет" только в рамках теста и событиях "ПередКаждымТестом", "ПослеКаждогоТеста". Для различных механизмов движка существуют различные контексты, такие как контекст утверждений, контекст теста и тд. Разработчику тестов будут интересны следующие контексты: * Контекст теста (`ЮТест.КонтекстТеста`) - живет в рамках одного теста. Доступен в каждом тесте и в обработчиках событий * `ПередКаждымТестом` * `ПослеКаждогоТеста` * Контекст тестового набора (`ЮТест.КонтекстТестовогоНабора`) - живет в рамках набора тестов. Доступен в каждом тесте набора и в обработчиках событий * `ПередТестовымНабором` * `ПослеТестовогоНабора` * `ПередКаждымТестом` * `ПослеКаждогоТеста` * Контекст тестового модуля (`ЮТест.КонтекстМодуля`) - живет в рамках тестового модуля. Доступен в каждом тесте модуля и в обработчиках событий * `ПередВсемиТестами` * `ПослеВсехТестов` * `ПередТестовымНабором` * `ПослеТестовогоНабора` * `ПередКаждымТестом` * `ПослеКаждогоТеста` Для тестовых наборов есть возможность определить отдельный контекст, доступный в конкретном наборе. Для этого надо переопределить события тестового набора через настройки "ПередТестовымНабором" и "ПослеТестовогоНабора" соответственно. В текущей реализации такой отдельный контекст набора не заменяет общий, а дополняет его. Пример: ```bsl Процедура ИсполняемыеСценарии() Экспорт ЮТТесты .ДобавитьТестовыйНабор("Набор1") .ДобавитьТест("Тест1") .ДобавитьТестовыйНабор("Набор2") .НастройкаИсполнения("ПередТестовымНабором", "ПередТестовымНабором_Набор2") .НастройкаИсполнения("ПослеТестовогоНабора", "ПослеТестовогоНабора_Набор2") .ДобавитьТест("Тест2"); КонецПроцедуры Процедура ПередТестовымНабором() Экспорт ЮТест.Контекст().УстановитьЗначение("...", ...); // Будет доступен в тестах каждого набора КонецПроцедуры Процедура ПередТестовымНабором_Набор2() Экспорт ЮТест.Контекст().УстановитьЗначение("...", ...); // Будет доступен только в тестах второго набора КонецПроцедуры ```