繁体   English   中英

如何在 junit jupiter 中过滤跳过的测试?

[英]How can I filter skipped tests during discovery in junit jupiter?

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM