我们刚开始使用Eclipse和Maven的Robot Framework。我们只想运行某些测试套件(测试套件将有测试套件)。有什么方法可以做到吗?
答案 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
请记住,在父测试套件的当前测试套件中,标签是(递归地)继承的。