首页 > 解决方案 > 可以从 RobotFramework 中的 end_suite 方法将测试标记为失败

问题描述

我正在创建一个库,我们在套件末尾获得实际测试的结果。结果收集在方法中的自定义侦听器组件中end_suite

例如,我们有两个测试:Test 1Test 2。测试套件运行后,在结果中,我们看到两个测试都通过了。但实际上,Test 2是我们在里面看到的失败end_suite

如果我在 处引发异常,end_suite它不会显示任何差异,并且测试仍被标记为通过。

有没有办法回溯测试的状态以赋予它们正确的状态?或者,也许您可​​以提出更好的解决方案?

标签: robotframework

解决方案


我真的不理解您的回答,但是您可以在测试结束时添加 Teardown :

[Teardown]      Run Keyword If      '${TEST_STATUS}' == 'FAIL'       Fatal Error

否则,在您的测试套件中定义一个关键字:

*** Variables ***
${SUITE_ERROR}=      ${False}

然后您可以在每次测试结束时或在测试期间调用关键字(此处称为 Suite Error)

[Teardown]      Run Keyword If      '${TEST_STATUS}' == 'FAIL'       Suite Error 

这是关键字:

Suite Error
[Documentation]     Triggers an error if the current operation
Set Global Variable     ${SUITE_ERROR}      ${True}

在测试套件结束时,调用套件 teardown :

*** Settings ***
...
Suite Teardown      Test Teardown

*** Keywords ***
Test Teardown
# At the end of the Test Suite, if there is a FAIL, STOP all next tests
Run Keyword If      '${SUITE_ERROR}' == '${True}'       Fatal Error

希望我能帮助


推荐阅读