从 PIT 执行中排除测试

Oli*_*ver 7 java unit-testing mutation-testing maven pitest

我必须从 PIT 的执行中排除我的集成测试。excludedTestClasses从版本 1.3.0 开始有一个选项。我试图通过 PIT 的 Maven 插件的以下配置来传递这些测试。

<plugin>
    <groupId>org.pitest</groupId>
    <artifactId>pitest-maven</artifactId>
    <version>1.3.1</version>
    <configuration>
        <verbose>true</verbose>
        <mutationThreshold>80</mutationThreshold>
        <targetClasses>
            <param>de.comp.proj.*</param>
        </targetClasses>
        <excludedTestClasses>
            <param>**/*IT.java</param>
        </excludedTestClasses>
    </configuration>
 </plugin>
Run Code Online (Sandbox Code Playgroud)

然而,PIT 仍在执行所有带有后缀的测试IT。我看了一下来源,但在晚上迷路了;-)

那么,我怎样才能跳过我的集成测试呢?

hen*_*nry 6

PIT 过滤器与编译后的二进制文件中的类名匹配,而不是与源文件名匹配。

你的过滤器应该看起来像

<excludedTestClasses>
    <param>de.comp.**.*IT</param>
</excludedTestClasses>    
Run Code Online (Sandbox Code Playgroud)

de.comp.*IT排除包中的所有测试de.comp。de.comp.**.*IT在子包中使用所有测试也被忽略。


Gua*_*oBE 6

For those using the Gradle plugin :

pitest {
    excludedTestClasses = ['de.comp.**.*IT']
}
Run Code Online (Sandbox Code Playgroud)


Fun*_*242 5

我使用pitest-maven版本1.4.2。

这个配置对我来说效果很好:

<excludedTestClasses>          
  <excludedTestClass>de.com.**.*IT</excludedTestClass>
</excludedTestClasses>
Run Code Online (Sandbox Code Playgroud)

也许以下语法适用于旧版本的pitest-maven:

<excludedTestClasses>
    <param>de.comp.**.*IT</param>
</excludedTestClasses>   
Run Code Online (Sandbox Code Playgroud)