不将测试从IntellIJ中运行


72

是否可以排除IntelliJ IDEA Ultimate中的某些测试?我想在IntelliJ中运行单元测试,但不包括集成测试。我用来命名集成测试,*IT.java因此Maven故障安全插件可以将它们与单元测试分开运行。

Answers:


123

在“JUnit运行”配置中,将设置Test kind模式,指定以下正则表达式作为模式:

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

它与类名匹配,因此您不需要匹配.java扩展名。正则表达式不会,如果类名结束与匹配IT使用负先行

忽略以IT结尾的测试


2
谢谢你的提示!这在IDEA中可以正常工作,但会导致在TeamCity下跳过所有测试。看来TeamCity 8.0.4根本不支持模式配置。我应该提出问题吗?
Vadzim 2013年

7
使用模式^(?!(.*SlowTest$|.*SlowSpec$)).*$ 省略既慢JUnit测试和斯波克测试命名为常规的.*SlowTest.*SlowSpec
加里

9

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

此外,由于支持的IntelliJ现在JUnit5,以及,你可以创建一个JUnit测试配置,并选择测试种类Tags (JUnit5)

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


请查看此答案以获取详细信息(包括屏幕截图)。
lcnicolau

3

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.