Junit5 从 @AfterEach 中的测试中获取结果
我试图在 @AfterTest 中获取测试运行结果的一些上下文。我希望至少了解它是否通过,并且最好还了解抛出的异常(如果有)。
但是,我尝试的每个参数似乎都无法解析,并且我找不到任何有关可用内容的文档。
代码:
public class TestClass {
@AfterEach
public void afterEach(
TestInfo testInfo, //works, but no report on state of test
// none of these work
TestExecutionSummary summary,
TestExecutionResult result,
TestFailure fail,
Optional<Throwable> execOp,
Throwable exception
) {
// ...
}
}
我该怎么做才能获取此上下文?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
经过尝试,我得到了以下对我有用的方法:
After trying, I got the following which worked for me:
不确定这是否是您想要的,但您可以使用
TestExecutionListener
或TestWatcher
(您还可以通过其他方式查看文档)。可以在此处找到 TestWatcher 的示例:junit5 中的 TestWatcher 以及更详细的说明:https://www.baeldung.com/junit-testwatcher。
以下代码示例部分取自 此处。
您的测试类将是这样的:
您可以根据您的需要调整逻辑。
更多参考:
Not sure if this is what you want, but you can use either a
TestExecutionListener
or aTestWatcher
(there are also other ways that you can check in documentation).An example of TestWatcher can be found here: TestWatcher in junit5 and a more detailed explanation here: https://www.baeldung.com/junit-testwatcher.
The following code example was partially taken from here.
You test class would be something like this:
You can adapt the logic to your needs.
More References: