繁体   English   中英

如何使用自定义注释过滤 JUnit5 测试

[英]How to filter JUnit5 tests with custom annotation

我正在寻找一种有效针对 JUnit5 集成测试的方法。 测试使用 gradle 运行,所有集成测试类都由自定义 class 级别注释修饰。 我可以根据它们的 class 名称模式或使用标签对它们进行分类来过滤它们,但是有没有办法设置一个针对带有注释的测试的测试套件?

假设您的自定义类级别注释名为@IntegrationTest ,您有两个选择。

  1. 使用@IntegrationTest @Tag("integration-test")对 @IntegrationTest 进行元注释,然后按构建中的integration-test标签进行过滤。
  2. 实现您自己的ExecutionCondition ,它基于@IntegrationTest的存在以及您认为合适的任何其他标准(例如,环境变量或 JVM 系统属性)启用/禁用测试类。 作为编写自己的ExecutionCondition的替代方法,您可以使用内置条件执行注释之一(例如@EnabledIfSystemProperty@EnabledIfEnvironmentVariable等)对@IntegrationTest进行元注释

你可以找到很多替代品

https://www.baeldung.com/junit-5-conditional-test-execution

例如你可以使用

@EnabledIfSystemProperty(named = "myProperty", matches = "my")

然后您可以在 gradle 中使用程序 arguments 或配置文件

暂无
暂无

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

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