我写了JUnit5扩展。但是我找不到方法如何获得测试结果。
扩展看起来像这样:
import org.junit.jupiter.api.extension.AfterTestExecutionCallback;
import org.junit.jupiter.api.extension.TestExtensionContext;
public class TestResultExtension implements AfterTestExecutionCallback {
@Override
public void afterTestExecution(TestExtensionContext context) throws Exception {
//How to get test result? SUCCESS/FAILED
}
}
有什么提示如何获得测试结果?
正如其他答案所指出的那样,JUnit会将失败的测试与异常进行通信,因此AfterTestExecutionCallback
可以使用来了解发生的情况。请注意,这很容易出错,因为以后运行的扩展程序仍可能无法通过测试。
另一种方法是注册自定义TestExecutionListener。不过,这两种方法都有点round回。存在一个问题,该问题跟踪对测试结果作出反应的特定扩展点,这很可能是您问题的最直接答案。如果您可以提供一个特定的用例,那么如果您可以转到#542并留下描述它的注释,那就太好了。
我正在使用和。
我正在迁移到JUnit5,我想知道在JUnit5中是否有一种简单的方法可以知道测试何时失败,就像我们在使用TestWatcher的JUnit4中那样。 我做了一些研究,发现了一些类似的问题,但仍未解决,比如这样一个问题:https://github.com/junit-team/junit5/issues/542因为大多数问题都很老,所以我想问一下,以防最近有一个解决方案。 想法是能够做一个屏幕截
问题内容: 为了进行研究,我需要从@AfterMethod运行测试方法(@Test)后捕获结果状态(“通过” /“失败”)。 我一直在使用导入org.testng.ITestResult; 我的研究成果使访问多个在线博客后使我的工作变得更加轻松,但是, 即使断言失败 了, 也 似乎并没有像预期的那样成功,因为结果输出总是通过。 我的代码如下: 结果在控制台中: 我的期望是将测试结果转换为变量以通过
问题内容: 有什么方法可以通过teardown()方法获取测试结果?我想根据结果在测试后进行清理。 在junit文档中找不到太多详细信息。 问题答案: 与您要求的最接近的东西可能是TestWatcher规则。那将不能让您访问返回的结果或其他任何东西,但是您可以使用它(或创建自己的TestRule并与Description对象结合使用,可以对方法进行不同的注释,以指示需要进行哪种清理。
请分享你对它可能是什么的想法 提前感谢!
我想使用测试异常是否工作良好。 例如,假设I test queue。