我试图阻止测试套件在特定测试用例失败后继续运行。
例如:
*** Test Cases ***
|Log In
| |Perform Valid Login
|Test A
| |Do A
|Test B
| |Do B
如果登录失败,我需要停止测试套件仅。当我定义"执行有效登录时,我可以使用任何关键字"关键字或者是需要从" Suite Teardown" (如果是这样的话)。
如果我运行关键字"如果测试失败则运行关键字"如果任何测试用例失败,它将停止测试套件。意味着如果"测试A"它会停止而不是继续进行测试B"。
谢谢。
答案 0 :(得分:3)
您可以调用内置关键字Fatal Error以暂停执行。来自文档:
停止整个测试执行。
使用此关键字的测试或套件未通过提供 消息,后续测试因预设消息而失败。可能 然而,撕裂将被执行。
您可以将其置于测试拆解中,并且仅在测试失败时调用它:
*** Test Cases ***
| Log In
| | [Teardown] | Run keyword if test failed
| | ... | Fatal Error | Unable to log in
当然,如果您愿意,也可以直接在关键字中致电Fatal Error
。您可以使用普通Run keyword if test failed
语句代替Run keyword if
,并提供一些可以确定登录是否成功的测试。
一般来说,测试依赖于其他测试被认为是不良的测试设计。任何给定的测试不应该依赖于任何其他测试。例如,此设置将阻止开发人员仅运行“测试B”,因为“测试B”依赖于首先运行的“登录”。
有时这是不可避免的,但如果这更像是设置步骤而不是实际测试用例,您可能需要考虑将登录移动到套件设置。如果套件设置失败,则所有其他测试将立即失败,并显示一条消息,指出套件设置失败。
另一种选择是添加一个特殊的关键字,断言你已正确登录。然后,你为每个测试做一个测试设置关键字,但登录测试。当每个测试运行时,它要做的第一件事就是检查它是否已登录,如果没有则立即失败。
答案 1 :(得分:0)
您似乎应该定义一个用于登录的套件设置。
这样,如果登录失败 - 整个套件都会失败。
或者 - 您也可以通过以下方式定义执行有效登录测试:
Login Test
Perform Valid Login
[teardown] Run Keyword If Test Failed Fatal Error