rf中的初始化文件
__init__.robot
文件的作用
__init__.robot
文件中创建或者导入的变量和关键字不能在子测试套件中使用,如果需要共享变量或关键字,通过资源文件实现__init__.robot
文件和测试用例文件的设置类似,但不能有测试用例和部分设置项- 可包含的设置项
Documentation, Metadata, Suite Setup, Suite Teardown
:这些特定于测试套件的设置的工作方式与测试用例文件中的工作方式相同
Force Tags,Test Setup, Test Teardown, Test Timeout
:在此目录或子目录下包含的所有测试用例文件中都有效
实例项目
目录结构
test
│ t1.robot
│ __init__.robot
├─dir
│ t2.robot
│ __init__.robot
- t1.robot中的内容
只写了测试用例
*** Test Cases ***
test_init
log 测试init_t1
__init__.robot
中的内容
设置了测试套件的setup和teardown,以及测试用例的setup和teardown,和强制标签(force tags)
*** Settings ***
Suite Setup log "init_suite_setup"
Suite Teardown log "init_suite_Teardown"
Test Setup log "init_test_setup"
Test Teardown log "init_test_teardown"
Force Tags tag1
dir/t2.robot
中的内容
同t1.robot
只写了测试用例
*** Test Cases ***
test_init
log 测试init_t2
dir/\_\_init__.robot
中的内容
*** Settings ***
Suite Setup log "init_suite_setup2"
Suite Teardown log "init_suite_Teardown2"
Test Setup log "init_test_setup2"
Test Teardown log "init_test_teardown2"
Force Tags tag2
执行
- 执行
robot .
,输出结果如下
t1.robot
只获取了同级目录下的init文件中的设置
t2.robt
获取了上一级和同级目录下的init文件中的设置
20210312 00:05:30.283 : INFO : "init_suite_setup"
20210312 00:05:30.290 : INFO : "init_suite_setup2" #根目录和dir目录下的__init__文件中的suite_setup均执行了
Starting test: Test Varfile.Dir.T2.test_init
20210312 00:05:30.295 : INFO : "init_test_setup2" #只执行dir目录下__init__文件中的test_setup
20210312 00:05:30.295 : INFO : 测试init_t2
20210312 00:05:30.296 : INFO : "init_test_teardown2"
Ending test: Test Varfile.Dir.T2.test_init
20210312 00:05:30.299 : INFO : "init_suite_Teardown2"
Starting test: Test Varfile.T1.test_init
20210312 00:05:30.305 : INFO : "init_test_setup" #执行根目录下__init__文件中的test_setup
20210312 00:05:30.306 : INFO : 测试init_t1
20210312 00:05:30.309 : INFO : "init_test_teardown"
Ending test: Test Varfile.T1.test_init
20210312 00:05:30.312 : INFO : "init_suite_Teardown"
- 执行
robot -i tag2 .
,输出结果
因为只有t2.robot
中的用例才有标签tag2,所以只执行了t2.robot
20210312 09:52:27.403 : INFO : "init_suite_setup"
20210312 09:52:27.409 : INFO : "init_suite_setup2"
Starting test: Test Varfile.Dir.T2.test_init
20210312 09:52:27.416 : INFO : "init_test_setup2"
20210312 09:52:27.417 : INFO : 测试init_t2
20210312 09:52:27.417 : INFO : "init_test_teardown2"
Ending test: Test Varfile.Dir.T2.test_init # 只有dir/t2.robot才有tag2标签,所以只执行了这个用例
20210312 09:52:27.420 : INFO : "init_suite_Teardown2"
20210312 09:52:27.423 : INFO : "init_suite_Teardown"