我是Robot框架的新手,我试图更好地理解suitesetup和suiteteardown中的概念和用法,当测试的文件夹结构不是“flat”时。在网上搜索了很久,Robot framework user guide - executing tests section和this question很相似,但不完全是我的情况,我还是没有找到任何解决办法,所以我们开始吧。在
我的项目现在包含以下文件:
包含Suite Setup
&;Suite Teardown
“定义”的_init__.robot
,如下所示:
*** 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
和{/path/to/some/python/file.py
中的某些Python函数“链接”的关键字。在
我的项目中的4个套件文件目前是按如下方式排列的:
^{pr2}$现在,Suite Setup
&;Suite Teardown
的目的(和用法)是,Suite Setup
将在运行整个{suite_1.robot
,Suite Teardown
将在最后一个套件的最后一个测试用例之后运行,在本例中是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 ?
尽管如此,{cd2>suite_3.robot
&;suite_4.robot
,那么现在,Suite Setup
应该在suite_3.robot
中的第一个测试用例之前调用,Suite Teardown
应该在suite_4.robot
中的最后一个测试用例之后调用。当然,我希望只保留__init__.robot
文件的一个单一的副本,也就是说,不要在每个子文件夹中保留__init__.robot
的两个类似副本,testGroup1
&;testGroup2
。当我这样做的时候,它起作用了,但这不是我想做的(正确的)方式。在
所以我的问题是:
我需要将__init__.robot
文件放在哪里?
例如,如果我希望运行testGroup2
(即-suite_3.robot
&;suite_4.robot
)中的两个测试套件,我需要使用什么命令?
当然,如果这不是实现我的目标的“正确”方式(方法)(对于每个测试套件子集,Suite Setup
&;Suite Teardown
),请建议如何实现。在
注意:我使用的是Robot framework 3.1.2(Linux上的Python3.5.2)
初始化文件在}。这样,如果您至少运行了一个位于
tests
文件夹中的位置是正确的,该文件夹同时包含testGroup1
和{tests
中某个位置或其子文件夹中的测试,则套件设置将在所有此类测试之前运行,并在随后进行套件拆分。在要强制运行套件安装和套件拆卸,必须将父文件夹(
tests
)保留为运行的文件夹。最好始终运行包含所有测试的文件夹。这样,您就不会错过任何套房设置或拆卸错误。在若要只运行选择测试,请使用选项}作为标记,或}。在
include
或{suite
或{在您的示例中,您将运行以下命令:
robot suite suite_3 suite suite_4 tests
,只运行suite3和suite4或者,您可以使用完全限定的套件名称:
robot suite tests.testGroup2.suite_3 suite tests.testGroup2.suite_4 tests
相关问题 更多 >
编程相关推荐