有没有办法在完整测试 运行 期间记录 JUnit5 @Disabled 原因值?

Is there a way to log the JUnit5 @Disabled reason value during a full test run?

我已经用尽了各种我认为会给我一个直接答案的搜索词,但我没有找到任何确定的东西(即使在 JUnit5 的文档中)。有没有办法从 JUnit5 中的 @Disabled 注释中检索 "reason"?我目前使用的方法:

  1. 创建一个实现 BeforeEachCallback
  2. 的扩展 class
  3. 循环测试方法注释寻找instanceof Disabled
  4. 找到该注释后,检索原因值并记录

逻辑在那里并且适用于单个特定测试 运行,但是当我 运行 完整测试 class 时,该方法在 BeforeEachCallback 的 @Override 中被跳过。所以我假设 JUnit 做了一些魔术,将它从 test 运行 生命周期作为一个整体排除在外。如果是这种情况,是否有办法检索该注释并在比 BeforeEachCallback 更早的时间记录它?我也尝试过 BeforeAllCallback,但无法访问测试 class.

的子方法

BeforeEachCallback 等扩展 API 不会通过 ExecutionCondition.[=15] 为 已禁用 的测试方法调用=]

JUnit Jupiter 5.4 引入了一个新的 TestWatcher 扩展 API,它具有用于禁用测试的 testDisabled() 回调。您可以在 User Guide.

中找到更多相关信息