如何排除机器人框架中的测试套件?我们正在使用Maven

时间:2014-07-30 00:11:50

标签: robotframework

我们刚开始使用Eclipse和Maven的Robot Framework。我们只想运行某些测试套件(测试套件将有测试套件)。有什么方法可以做到吗?

2 个答案:

答案 0 :(得分:1)

排除套件没有pybot选项,除了首先不在命令行中包含它们。话虽这么说,你有几个选择来完成同样的事情。

第一个选项是提供所有测试标记,然后使用--exclude选项排除具有特定标记的测试。例如,在我的组织中,我们使用机器人进行自动和手动测试。当我们以无人值守的方式运行时,我们将使用manual标记排除所有测试用例。

如果这不切实际,您的另一个选择是枚举您 想要运行的套件。这很乏味,但如果使用参数文件会更容易。例如,您可以使用以下内容创建文件:

--suite fullsuite.subsuite1
--suite fullsuite.subsuite3
--suite fullsuite.subsuite4

如果将其保存到名为&#34的文件中; skip2.args"然后,您可以使用--argumentfile选项在命令行上引用它。例如:

pybot --argumentfile skip2.args ./fullsuite

您可以将这两种技术结合起来。例如,要跳过" subsuite2"并且还跳过标记为手动的所有测试,您只需将--exclude选项添加到.args文件中:

--suite fullsuite.subsuite1
--suite fullsuite.subsuite3
--suite fullsuite.subsuite4
--exclude manual

有关命令行选项的更多信息,您可以在命令行键入pybot --help,或参阅机器人框架用户指南中的All command line arguments部分。

答案 1 :(得分:1)

以下是使用maven时如何选择要执行的机器人测试的方法。

Maven的pom.xml文件如下所示:

....
<properties>
    <suite.test /> 
    <include.tag />
    <exclude1.tag></exclude1.tag>
    <exclude2.tag></exclude2.tag>
    <exclude3.tag > EXCLUDE </exclude3.tag>
    ....
</properties>
....
<build>
  <plugins>
      <plugin>
            <groupId>org.robotframework</groupId>
            <artifactId>robotframework-maven-plugin</artifactId>
            <configuration>
                <suites>
                    <suite>${suite.test}</suite>
                </suites>
                <includes>
                    <tag>${include.tag}</tag>
                </includes>
                <excludes>
                    <tag>${exclude1.tag}</tag>
                    <tag>${exclude2.tag}</tag>
                    <tag>${exclude3.tag}</tag>
                </excludes>
                .....
             </configuration>
             ....
        </plugin>
        .....
    </plugins>
    .....
  </build> 

如果没有命令行选项,则执行所有测试套件,但标记为EXCLUDE:

的测试套件除外
mvn robotframework:run

可以添加命令行选项以微调执行哪些测试套件。 此命令仅执行名为PerformanceSuite

的测试套件
mvn robotframework:run -Dsuite.test=PerformanceSuite

此命令执行除标记为EXCLUDE(默认行为)的标记以及标记为“DEMO”或“SAMPLE”的标记之外的所有测试套件

mvn robotframework:run  -Dexclude1.tag=DEMO -Dexclude2.tag=SAMPLE

此命令仅运行标记为“SERVER”的测试套件,但不包括使用SAMPLE进行调试的套件:

 mvn robotframework:run  -Dinclude.tag=SERVER -Dexclude1.tag=SAMPLE

请记住,在父测试套件的当前测试套件中,标签是(递归地)继承的。