Как после выполнения теста прописать шаг очистки, который выполнится даже если тест упадет?

add

#1

Собственно, сабж вызван болью добавления шага очистки во все остальные шаги, которые упадут если не выполнится текущий.

Правильная изоляция - она какая?


#2

По идее это процедура ПередОкончаниемСценария(), она срабатывает всегда когда сценарий завершается по любой причине, успех или падение шага с ошибкой.

Но я столкнулся с такой проблемой что эта процедура не всегда срабатывает.
Add - ПередОкончаниемСценария() не срабатывает может там появится ответ на ваш вопрос


#3

Да, один из правильных вариантов.

Еще можно советовать вариант с финальным сценарием в конце файла фичи.
т.к. сценарии выполняются последовательно, финальный сценарий будет выполнен последним и может все подчистить за собой.

Часто такой вариант бывает проще сделать, чем писать код в ПередОкончаниемСценария, особенно при наличии нескольких файлов шагов :slight_smile:


#4

Я так делал - с финальным сценарием. Но если у меня несколько сценариев на одну тему, то пока до финального дойдет, сценарии своим мусором будут мешать друг другу.

Сделал очистку перед началом сценария в секции Дано. Но тут мне приходится чистить “площадями”, т.е. не могу адресно удалять мусор от предыдущего, т.к типо не знаю что там будет за мусор. Если я скажем вернулся к этой фиче и дописал еще с десяток сценариев и не помню кто и где мусорил ранее.


#5

@Maku-shimo Нужно четко понимать разницу между очисткой данных после теста и подготовкой данных для теста.

Важнее и правильнее использовать подготовку для теста.
Тест должен приготовить себе правильные данные, окружение.

Чистить после завершения теста, как правило, не нужно или нужно в очень редких случаях :slight_smile:

чистить площадями, после десятка сценариев и т.п. - не нужно!!


#6

Тест знает, какие данные ему нужно.
Тестировщик (автор теста), соответственно, также должен понимать, какие данные должны быть для работы теста.
не нужно помнить про другие сценарии, нужно помнить про то. что нужно этому конкретному тесту/сценарию.


#7

Ну да, но нужно не забывать, что для " я ввожу приходную накладную от контрагента Контрагент с товаром Товар в количестве 2, провожу её и в отчете вижу остаток 2" входными условиями являются не только существование контрагента, товара и склада, но и зачистка регистра остатков (как минимум по этим измерениям).


#8

Да, все верно.
И это нужно делать, как правило, до выполнения основного блока теста, результаты которого затем проверяются.