是否有可能在IntelliJ中创建一个运行/调试配置,只获取那些与正则表达式匹配的文件?
我想要运行我所有的单元测试。我不想运行由我的同事编写的集成测试。集成测试包含文本"IT",因此我认为下面的regex会这样做:
^((?!IT).)*$ 但事实并非如此。
编辑
作为一个简单的例子,我尝试了以下正则表达式:
^.*IT.*$
(这与我想要达到的目标正好相反),但我还是失败了。它仍然收集每一个测试并运行它。
获取的示例测试:
com.my_company.session.SessionTest.java
com.my_company.test.server.api.ITAuthentication.java

这就是测试结果面板的样子

发布于 2017-04-04 08:56:21
简短回答:
不适用于JUnit 5
长答案
CrazyCoder好心地回复了我的在Jetbrain论坛上发帖。他提供了一个答案,并上传了他的工作项目。这很有帮助,因为我验证了模式匹配在他的项目中很有效。
然后,另一位Jetbrain工程师回应了我的“怎么做”的要求。他指出IDEA 164088,JUnit 5不支持模式配置
这是一个已知的问题,将于2017年4月发布2017.2.X版本。
溶液
在此之前,一个解决办法是使用JUnit5标记。
@Tag("junit")
public class MyTest 然后运行以下配置,该配置只获取带有特定标记注释的测试类。

实际上,只要测试类的数量有限,使用标记对于给定的任务来说似乎是一个更优雅的解决方案。
发布于 2017-04-03 10:34:32
我已经有了提供答案,它描述了如何排除*IT.java测试,但是由于您的问题不同,而且您希望排除*IT*.java测试(任何有IT名称的测试),模式将有所不同:
^(?!.*IT.*).*$

请注意,在JUnit IDEA 2017.1中,它不能与IntelliJ 5一起工作,有一个已知的bug是为2017.2版本修复的:
发布于 2020-01-13 08:49:09
您可以在一个类中运行所有测试用例,然后>>通过持有Ctrl和选择一些测试用例,然后单击鼠标>>运行,然后打开配置运行并复制模式以编辑更多内容。
https://stackoverflow.com/questions/43144469
复制相似问题