Java 在junit jupiter中发现期间,如何筛选跳过的测试?

Java 在junit jupiter中发现期间,如何筛选跳过的测试?,java,junit,junit5,junit-jupiter,Java,Junit,Junit5,Junit Jupiter,我们有一个内部工具,可以向云计算工作者分发数十万个测试。我已经编写了一个工具,可以使用启动器discoverrequest发现所有需要运行的测试,并且一切正常。但是,我们的一些测试(和测试类)用@Disabled或@Ignore注释。这些测试仍然会被发现并分配给测试人员,但当然这些测试不会做任何事情,所以它们只是在浪费资源。我希望在发现时识别并过滤这些测试,以便它们不包含在TestPlan中 我发现JupiterTestDescriptor::shouldBeSkipped(JupiterEng

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

我发现
JupiterTestDescriptor::shouldBeSkipped(JupiterEngineExecutionContext)
,但我没有看到从
PostDiscoveryFilter
调用它的好方法

我可以使用自定义的
PostDiscoveryFilter
来识别每个测试的源代码,然后使用反射来确定是否对方法或类进行了注释,但这是一种有漏洞的方法,不包括一般情况:还有其他方法来禁用测试


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

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

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