使用排除两种不同类型测试的RegEx模式在IntelliJ中运行所有单元测试



我想在IntelliJ IDEA中添加一个运行配置,它允许我只运行单元测试,而忽略项目中存在的另外两种类型的测试:集成测试和前端测试。我们项目中的集成测试遵循命名模式NameOfTestClassIT,而前端测试遵循命名模式T00_00_NameOfTestClass。我在这里找到了一个很好的解决方案,可以排除正在执行的集成测试,我想扩展RegEx^(?!.*IT$).*$,同时也可以排除其他命名模式。

我尝试了很多不同的组合,结果是这样的RegEx:^(?!(.*IT$)|T[0-9]{2}).*$

我尝试使用RegEx检查器来证明表达式工作,它工作得很完美。但是,当我使用此模式执行Run Configuration时,集成测试将被跳过,而前端测试则不会。是否有任何限制设置IntelliJ,它根本不工作,或者是我的RegEx没有做它应该做的?

如果有人能帮我的话,我会很高兴的。

使用.*,在IT测试结束时使用负向后视,在前端测试开始时使用负向前视:

^(?!T\d+_).*(?<!IT)$

查看现场演示

look around的意思是:

  • ^(?!T\d+_)"开头没有T,然后是数字,然后是下划线"
  • (?<!IT)$"结束前的字符不是IT "

您可以根据自己的需要更改第一个展望,使其具有更多或更少的限制。

相关内容

最新更新