【发布时间】:2012-10-17 17:57:09
【问题描述】:
是否不能排除 IntelliJ IDEA Ultimate 中的某些测试?我想在 IntelliJ 中运行单元测试,但排除集成测试。我将集成测试命名为 *IT.java,以便 Maven 故障安全插件可以将它们与单元测试分开运行。
【问题讨论】:
标签: java maven junit intellij-idea
是否不能排除 IntelliJ IDEA Ultimate 中的某些测试?我想在 IntelliJ 中运行单元测试,但排除集成测试。我将集成测试命名为 *IT.java,以便 Maven 故障安全插件可以将它们与单元测试分开运行。
【问题讨论】:
标签: java maven junit intellij-idea
在JUnit 运行配置中,将Test kind 设置为Pattern,指定以下正则表达式作为模式:
^(?!.*IT$).*$
它与类名匹配,因此您不需要匹配 .java 扩展名。如果类名以IT 结尾,使用negative lookahead,则正则表达式将不匹配。
【讨论】:
^(?!(.*SlowTest$|.*SlowSpec$)).*$ 省略慢速Junit 测试和以.*SlowTest 和.*SlowSpec 命名的Spock 测试
.*(?<!IT)$
使用 JUnit5,您现在可以标记您的测试,例如:@Tag("integration-test")。
此外,鉴于 IntelliJ 现在也支持 JUnit5,然后您可以创建 JUnit 测试配置并选择 Test Kind:Tags (JUnit5)。
要排除“集成测试”,您只需指定为标签:
!integration-test,并且 IntelliJ 将运行您的所有 JUnit5 测试,但标记为 integration-test 的测试除外。
【讨论】:
我会将它们拆分为它们位于不同的包中。毕竟他们在做不同的事情。然后,您可以按包运行测试。 This 链接详细说明了如何执行此操作。
【讨论】: