ChatGPT解决这个技术问题 Extra ChatGPT

排除在 IntellIJ 中运行的测试

是否不能排除 IntelliJ IDEA Ultimate 中的某些测试?我想在 IntelliJ 中运行单元测试,但排除集成测试。我将集成测试命名为 *IT.java,以便 Maven 故障安全插件可以从单元测试中单独运行它们。


C
CrazyCoder

JUnit Run 配置中,将 Test kind 设置为 Pattern,指定以下正则表达式作为模式:

^(?!.*IT$).*$

它与类名匹配,因此您不需要匹配 .java 扩展名。如果类名使用 negative lookaheadIT 结尾,则正则表达式将不匹配。

https://i.stack.imgur.com/emlFU.png


谢谢你的提示!这在 IDEA 中运行良好,但会导致在 TeamCity 下跳过所有测试。 TeamCity 8.0.4 似乎根本不支持 Pattern 配置。我应该提出问题吗?
使用模式 ^(?!(.*SlowTest$|.*SlowSpec$)).*$ 省略慢速 Junit 测试和使用 .*SlowTest.*SlowSpec 约定命名的 Spock 测试
顺便说一句,正则表达式可以简化为 .*(?<!IT)$
J
João Pinho

使用 JUnit5,您现在可以标记您的测试,例如:@Tag("integration-test")

此外,鉴于 IntelliJ 现在也支持 JUnit5,您可以创建 JUnit 测试配置 并选择 Test KindTags (JUnit5)

要排除“集成测试”,您只需指定标签:!integration-test,IntelliJ 将运行您的所有 JUnit5 测试,除了带有 integration-test 标记的测试。


查看此 answer 了解详细信息(包括屏幕截图)。
R
RNJ

我会将它们拆分为它们位于不同的包中。毕竟他们在做不同的事情。然后,您可以按包运行测试。 This 链接详细说明了如何执行此操作。