-
Notifications
You must be signed in to change notification settings - Fork 4
/
dynamic_teardown.txt
49 lines (42 loc) · 2.91 KB
/
dynamic_teardown.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
*** Settings ***
Documentation Иногда бывает неудобно записывать все Teardown-инструкции явным образом.
... Приходится отслеживать самостоятельно все создаваемые ресурсы.
...
... Однако ничто не мешает нам создавать список Teardown-инструкций динамически.
... Если мы создаём в слове какой-то ресурс, то можем в нём же добавить инструкцию, которая удалит
... этот ресурс по завершению теста. В таком случае данный ресурс будет автоматически подчищаться
... после создания.
...
... В этом примере не создаётся никаких ресурсов, просто пишутся сообщения в лог. Однако сам
... механизм придумывается именно из соображения работы с ресурсами, которые надо подчищать.
Library Collections
Test Setup Обнулить список Teardown-инструкций
Test Teardown Запустить все Teardown-инструкции
*** Variables ***
@{TEARDOWNS} @{EMPTY}
*** Test Cases ***
Можно динамически формировать Teardown-конструкции
[Documentation] Простейший пример работы списка Teardown-инструкций.
... Сообщения будут выведены в лог не сразу, а после завершения теста.
... Это будет сделано, даже если тест упадёт!
Добавить в список Teardown-инструкций Вывести в лог World
Добавить в список Teardown-инструкций Вывести в лог Goodbye!
Вывести в лог Hello
Fail
После второго теста эти инструкции уже не выполняются
[Documentation] После того, как мы один раз подчистили ресурсы, этого больше не надо делать
No Operation
*** Keywords ***
Обнулить список Teardown-инструкций
@{empty_list}= Create List
Set Test Variable @{TEARDOWNS} @{empty_list}
Запустить все Teardown-инструкции
Log List ${TEARDOWNS}
:FOR ${instruction} IN @{TEARDOWNS}
\ Run Keyword ${instruction}
Добавить в список Teardown-инструкций
[Arguments] ${word}
Append To List ${TEARDOWNS} ${word}
Log List ${TEARDOWNS}
Вывести в лог ${сообщение}
Log ${сообщение}