如何使用Robot Framework从测试套件中运行特定测试用例
我刚开始学习Robot,正在学习如何编写逻辑和测试用例。
我有一个测试套件,叫做“mytestsuite.robot”,里面有很多测试用例。我在其中一个测试用例里遇到了一些错误。
我想只运行那个特定的测试用例,因为我不想再运行整个测试套件。
文件 mytestsuite.robot
testcase1
....
....
testcase2
....
....
testcase3
....
....
testcase4
....
....
假设测试用例3失败了,我只想重新运行测试用例3。
我试着使用:
pybot mytestsuite.robot -t testcase3
但是我遇到了一个错误。
4 个回答
虽然这个帖子有点晚了,但如果将来有人在找这个内容,你可以使用标签
的概念。在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
如果你在使用 __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 这个测试套件里的所有测试用例。
如果你想在Robot Framework中运行一个单独的测试案例,可以参考下面的例子。
语法: robot -t "测试案例名称" 测试套件名称
例子: robot -t "PON类型测试案例" Aquarium_Project.robot
如果你想在Robot Framework中运行所有的测试案例,可以参考下面的例子。
语法: robot 测试套件名称
例子: robot Aquarium_Project.robot
你想使用 -t
或 --test
这个选项,但这个选项要放在文件名 前面,而不是后面。这样写就可以了:
robot -t testcase1 mytestsuite.robot
关于命令行参数的顺序,可以在用户手册中找到,那里有一节叫做 开始测试执行,你也可以在命令行中使用 --help
选项查看(比如 pybot --help
)。
要注意,具体的文件名是可选的。你也可以只用: robot -t testcase1 .
这里的 "." 表示查找当前目录下所有包含指定测试的文件。Robot 会帮你找到具体的测试。
你还可以在测试名称的开头或结尾使用通配符 *,这样可以更方便地匹配测试或运行多个测试。
比如: robot -t "testcase1*" .
这样会匹配当前文件夹中所有以 "testcase1" 开头的测试。
用户手册中还有一节叫做 选择测试用例,里面详细讲了这个内容。