如何使用 Robot Framework 从测试套件运行特定的测试用例
Posted
技术标签:
【中文标题】如何使用 Robot Framework 从测试套件运行特定的测试用例【英文标题】:How to run specific test cases from a test suite using Robot Framework 【发布时间】:2014-09-20 05:35:21 【问题描述】:我是 Robot 的新手,正在学习编写逻辑和测试用例。
我有一个测试套件“mytestsuite.robot”,其中有很多测试用例。我的一个测试用例中有几个错误。
由于我不想再次运行整个测试套件,如何只运行那个特定的测试用例?
文件 mytestsuite.robot
testcase1
....
....
testcase2
....
....
testcase3
....
....
testcase4
....
....
假设测试用例 3 失败,我只想重新运行测试用例 3。
我尝试使用:
pybot mytestsuite.robot -t testcase3
但我得到一个错误。
【问题讨论】:
【参考方案1】:您想使用选项-t
或--test
,但选项在文件名之前放在文件名之前而不是之后。这应该有效:
robot -t testcase1 mytestsuite.robot
用户指南中标题为Starting test execution 的部分中介绍了命令行参数的顺序,并且还可以在带有--help
选项的命令行中使用(例如pybot --help
)
请注意,特定文件名是可选的。您只能使用: 机器人 -t testcase1 .
在哪里“。”表示查找包含指定测试的所有文件。机器人会努力寻找具体的测试。
您还可以在测试名称的开头或结尾使用 willcard 作为 *,以轻松匹配测试或运行多个测试。
机器人 -t "testcase1*" 。
将匹配当前文件夹中所有以“testcase1”开头的测试。
用户指南中有一个标题为Selecting test cases 的部分涵盖了这个主题。
【讨论】:
【参考方案2】:如果您想在 Robot Framework 中运行 single 测试用例,请使用以下示例。
语法:robot -t "Test Case Name" Test Suite Name
示例:robot - t "PON Type Test Case" Aquarium_Project.robot
如果您想在 Robot Framework 中运行所有测试用例,请使用以下示例
语法:robot Test Suite Name
示例:robot Aquarium_Project.robot
【讨论】:
【参考方案3】:如果您使用具有设置和拆卸的__init__.robot
文件,如果您具有如下嵌套目录结构,则不能直接从测试文件调用测试:
|-- foo
|-- bar.robot
并且bar.robot文件有一个名为baz的测试用例,在这种情况下,你可以这样做:
robot --test 'foo.bar.baz' foo
嵌套更深:
|-- foo
|-- bar
|-- baz.robot
robot --test 'foo.bar.baz.*' foo
您可以使用*
(星号)运行 foo.bar.baz 套件中的所有测试用例。
【讨论】:
【参考方案4】:迟到的帖子,但如果有人在将来寻找这个,你也可以使用Tags
的概念。使用 Robot Framework,您可以标记您的测试套件和测试用例。对于您的问题,我将限制自己使用基于测试的标签。休息时,您可以阅读 - https://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#tagging-test-cases
在您的情况下: 文件 mytestsuite.robot
testcase1
...
...
testcase2
...
...
testcase3
[Tags] | temp
...
...
testcase4
...
...
您可以向任何测试用例添加多个标签。使用--include
(也用作-i
)机器人选项来指定要运行的标签。在这种情况下:
robot --include temp mytestsuite.robot
或
robot --i temp mytestsuite.robot
【讨论】:
以上是关于如何使用 Robot Framework 从测试套件运行特定的测试用例的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Robot Framework 测试用例的命令行参数中传递 Tab?