1

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

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

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

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

4

1 回答 1

0

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

于 2020-06-26T20:38:56.550 回答