我正在考虑通过创建扩展将旧的 junit4 扩展移植到 junit5。到目前为止,我失败的一个功能是使任何在 System.out 或 System.err 上写入的测试方法都失败,并将失败点指向该特定测试。
我尝试将 TestExecutionListener#reportingEntryPublished 与 junit.jupiter.extensions.autodetection.enabled=true 一起使用,然后我使用了该方法,但是此时实际上将测试状态更改为 FAILED 为时已晚。或者我可以吗?
我开始使用 BeforeAllCallback 和 AfterAllCallback 并进行 out/err 重定向并在字符串缓冲区上断言。我可能能够让它工作,但这似乎是我可能会搞砸的事情,并且从现在起几年后会发现错误:) 我们的 junit4 跑步者做了这样的事情,但它真的过于复杂,我不希望任何人尝试维护类似的东西。
有什么办法可以在junit5中很好地做到这一点?