我是机器人框架的新手,并试图更好地理解测试文件夹时 Suite Setup 和 Suite Teardown 中的概念和用法结构不是“平坦的”。在网上进行了长时间的搜索之后,Robot framework user guide - executing tests section和this question都与我的情况相似但又不完全相同,但我仍然没有找到任何解决方案,因此我们继续。
我的项目现在包含以下文件:
_init__.robot
,其中包含Suite Setup
和Suite Teardown
“定义”,如下所示:
*** Settings ***
Library /path/to/some/python/file.py
Suite Setup myCustomSuiteSetup
Suite Teardown myCustomSuiteTeardown
*** Keywords ***
myCustomSuiteSetup
${ret_code} = run keyword MySuiteSetupKeyword
should be eqaul as integers ${ret_code} 0
myCustomSuiteTeardown
${ret_code} = run keyword MySuiteTeardownKeyword
should be eqaul as integers ${ret_code} 0
myCustomSuiteTeardown
和MySuiteTeardownKeyword
是与文件/path/to/some/python/file.py
中的某些Python函数“链接”的关键字。
我项目中的4个套件文件当前的排列方式如下:
|--tests
|----suite_1.robot
|----suite_2.robot
|----suite_3.robot
|----suite_4.robot
|----__init__.robot
现在,Suite Setup
和Suite Teardown
的目的(和用法)是Suite Setup
将在ENTIRE tests
文件夹的运行开始时运行,即-第一个套件的第一个测试用例,在此情况下为suite_1.robot
和Suite Teardown
将在 last 套件的 last 测试用例(在本例中为suite_4.robot
)中运行之后。
为此,我只需按以下方式调用所有套件(从tests
文件夹“上方”的一个文件夹中):
robot tests
到目前为止很好。
现在我的问题如下:实际上,我希望“重新排列”测试文件的文件夹结构,如下所示:
|--tests
|----testGroup1
|--------suite_1.robot
|--------suite_2.robot
|----testGroup2
|--------suite_3.robot
|--------suite_4.robot
|--__init__.robot <----- Where the __init__.robot file should be placed now ?
这意味着,要将测试套件“聚集”到子文件夹中,我仍然希望像以前一样保持Suite Setup
和Suite Teardown
的使用,即-调用了每个可能的子集“根”文件夹tests
,Suite Setup
和Suite Teardown
下的测试套件必须是要执行的第一个和最后一个(分别)“步骤”,例如,假设我希望运行suite_3.robot
和suite_4.robot
,那么现在,Suite Setup
应该在suite_3.robot
中的第一个测试用例之前被调用,Suite Teardown
应该在最后一个测试之后被调用suite_4.robot
中的大小写。另外,当然,我希望仅保留__init__.robot
文件的单个副本-即-在每个子文件夹{{1中,不要保留__init__.robot
的两个相似副本}}和testGroup1
。当我这样做时,它起作用了,但这不是我希望这样做的(正确)方法。
所以我的问题是:
我需要在哪里放置testGroup2
文件?
例如,如果我希望运行__init__.robot
中的两个测试套件(即-testGroup2
和suite_3.robot
),我需要使用什么命令?
当然,如果这不是实现我的目标的“正确”方法(方法)(对于每个测试套件子集,使用单一且统一的suite_4.robot
和Suite Setup
)-请提出建议完成。
注意::我正在使用机器人框架3.1.2(Linux上为Python 3.5.2)
答案 0 :(得分:2)
您在包含tests
和testGroup1
的{{1}}文件夹中放置初始化文件是正确的。这样,如果您至少运行testGroup2
中或其子文件夹中的一项测试,则套件安装程序将在所有此类测试之前运行,然后套件随即拆卸。
要强制运行Suite Setup和Suite Teardown,必须将父文件夹(tests
)保留为运行的文件夹。最好始终运行包含所有测试的文件夹。这样一来,您就不会误会任何套件设置或拆卸。
要仅运行 选择测试,请对标签使用tests
或--include
选项,或者对标签使用--exclude
或--suite
。
在您的示例中,您将运行以下命令:
--test
,仅运行suite_3和suite_4
或者,您可以使用完全限定的套件名称:
robot --suite suite_3 --suite suite_4 tests