【问题标题】:How can I filter skipped tests during discovery in junit jupiter?如何在junit jupiter发现期间过滤跳过的测试?
【发布时间】:2020-06-26 15:01:32
【问题描述】:

我们有一个内部工具,可以将数十万个测试分发给云工作者。我编写了一个工具,可以发现所有需要使用LauncherDiscoverRequest 运行的测试,并且一切正常。但是,我们的一些测试(和测试类)使用@Disabled@Ignore 进行注释。这些测试仍然被发现并分配给测试工作者,但当然这些测试没有做任何事情,所以它们只是在浪费资源。我想在发现时识别和过滤这些测试,以便它们不包含在 TestPlan 中。

我找到了JupiterTestDescriptor::shouldBeSkipped(JupiterEngineExecutionContext),但我没有看到一个很好的方法来调用它,例如,PostDiscoveryFilter

我可以使用自定义PostDiscoveryFilter 来识别每个测试的来源,然后使用反射来确定方法或类是否被注释,但这很hacky并且不涵盖一般情况:还有其他方法可以禁用测试.

在发现时过滤掉跳过的测试的最佳方法是什么?

【问题讨论】:

    标签: java junit junit5 junit-jupiter


    【解决方案1】:

    您无法过滤掉已禁用的测试,因为已禁用的测试是这样报告的。您可以做的是引入您自己的注释,例如@MyDisabled,它具有元注释@Disabled@Tag(“mytag“)。因此测试被禁用,您可以过滤掉标签。

    【讨论】:

      猜你喜欢
      • 2019-06-08
      • 2018-12-07
      • 2022-01-23
      • 2017-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-15
      相关资源
      最近更新 更多