robotframework - 可以从 RobotFramework 中的 end_suite 方法将测试标记为失败
问题描述
我正在创建一个库,我们在套件末尾获得实际测试的结果。结果收集在方法中的自定义侦听器组件中end_suite
。
例如,我们有两个测试:Test 1
和Test 2
。测试套件运行后,在结果中,我们看到两个测试都通过了。但实际上,Test 2
是我们在里面看到的失败end_suite
。
如果我在 处引发异常,end_suite
它不会显示任何差异,并且测试仍被标记为通过。
有没有办法回溯测试的状态以赋予它们正确的状态?或者,也许您可以提出更好的解决方案?
解决方案
我真的不理解您的回答,但是您可以在测试结束时添加 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
希望我能帮助
推荐阅读
- scala - 我想在 SBT 项目中做 Spark 教程,我需要安装哪些库?
- javascript - async/await 总是返回 undefined
- android - Android AVD 在应用程序运行时崩溃,因为“混合版本可能导致运行时崩溃”
- sql-server - 运行最新版本的 SQL Server,如何处理旧的 DB
- elixir - Ecto 查询中的条件参数
- string - TryStrToDateTime 忽略字符串中的尾随字符(“误报”)
- java - 为什么我不能在这个循环中调用另一个类的方法?
- android - 如何在firestore android中获取集合的根文档字段
- django - 如何更改 django-ckEditor 的 UI 语言?
- java - 使用 Selenium 时 System.setProperty() 的意义是什么