对嵌套文件夹结构robot fram中的多个测试套件使用通用套件设置和套件拆卸

2024-03-29 09:32:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Robot框架的新手,我试图更好地理解suitesetupsuiteteardown中的概念和用法,当测试的文件夹结构不是“flat”时。在网上搜索了很久,Robot framework user guide - executing tests sectionthis 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.robotSuite 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>的子集{cd2>“的意思是,每一个cd2>的子集{cd2>都必须执行{cd2>的子集,例如,假设我希望运行suite_3.robot&;suite_4.robot,那么现在,Suite Setup应该在suite_3.robot中的第一个测试用例之前调用,Suite Teardown应该在suite_4.robot中的最后一个测试用例之后调用。当然,我希望只保留__init__.robot文件的一个单一的副本,也就是说,不要在每个子文件夹中保留__init__.robot的两个类似副本,testGroup1&;testGroup2。当我这样做的时候,它起作用了,但这不是我想做的(正确的)方式。在

所以我的问题是:

  1. 我需要将__init__.robot文件放在哪里?

  2. 例如,如果我希望运行testGroup2(即-suite_3.robot&;suite_4.robot)中的两个测试套件,我需要使用什么命令?

当然,如果这不是实现我的目标的“正确”方式(方法)(对于每个测试套件子集,Suite Setup&;Suite Teardown),请建议如何实现。在

注意:我使用的是Robot framework 3.1.2(Linux上的Python3.5.2)


Tags: 文件文件夹套件init方式setuprobotcode
1条回答
网友
1楼 · 发布于 2024-03-29 09:32:59

初始化文件在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

相关问题 更多 >