机器人框架:运行整个测试套件的设置

时间:2015-11-18 18:17:07

标签: robotframework

ROBOT是否可以为整个测试套件运行设置,而不是为每个文件单独运行设置?我想在套件的开头运行安装程序,如果安装失败,则根本不运行任何测试用例。

例如,给定以下文件:

*** Settings ***
Test Setup    Setup Fails

*** Test Cases ***
Case1
    Should Be True    1<2

Case2
    Should Be True    2<1

*** Keywords ***
Setup Fails
    Should Be True    2<1

我想要Case1和Case2都不要执行。实际上,两者都试图单独使用安装程序失败作为设置,并且output.xml文件具有每个FAIL测试用例的状态,并显示消息“#34;安装失败...&#34;。相反,我希望xml文件具有“FAIL&#39;”套件的状态。消息为&#34;安装失败...&#34;并且测试用例要么不包含在内,要么表明它们没有被运行。

这是ROBOT支持的吗?

相反,我希望收到错误消息

3 个答案:

答案 0 :(得分:6)

机器人支持suite setup。例如:

*** Settings ***
Suite Setup    Setup Fails

*** Test Cases ***
Case1
    Should Be True    1<2

Case2
    Should Be True    2<1

*** Keywords ***
Setup Fails
    fail    Danger Will Robinson!

以上结果产生以下结果:

==============================================================================
Example                                                                       
==============================================================================
Case1                                                                 | FAIL |
Parent suite setup failed:
Danger Will Robinson!
------------------------------------------------------------------------------
Case2                                                                 | FAIL |
Parent suite setup failed:
Danger Will Robinson!
------------------------------------------------------------------------------
Example                                                               | FAIL |
Suite setup failed:
Danger Will Robinson!

2 critical tests, 0 passed, 2 failed
2 tests total, 0 passed, 2 failed
==============================================================================

答案 1 :(得分:3)

您需要在文件夹中定义一个名为__init __。robot的文件。

该文件应包含套件安装程序,它将在该文件夹中的任何其他文件之前运行。

您也可以嵌套这些文件。如果您有以下文件夹:

A-
 -B
 -C

你把一个__init __。机器人文件放在文件夹A中,它的套件设置会在文件夹B和C中的任何测试或任何初始化之前运行(一次)。

请注意,同样的技巧也适用于拆解 - 只是相反。

答案 2 :(得分:1)

您可以使用[标签]功能

    *** Settings ***
Suite Setup    Setup Fails

*** Test Cases ***
Case1
    [Tags]  wip
    Should Be True    1<2

Case2
    [Tags]  wip
    Should Be True    2<1

*** Keywords ***
Setup Fails
    fail    Danger Will Robinson!

然后,当您运行机器人时,可以使用include(-i)和exclude(-e)参数来运行或不运行您想要的任何标记。 所以你的脚本参数看起来像这样

-i run -e wip --outputdir <log dir> <robot dir>

您也可以像这样包含/排除多个标签

-i run -e wipORbug etc...

还有一些强制标记可以放在测试套件的设置中,这些标记会将这些标记应用到每个单独的测试用例中,如果您有多个测试套件并且只想测试一个测试套件,这很方便。

如果您有多个运行测试套件的文件,则可以使用包含Suite Setup和Suite Teardown关键字的 init .robot文件。