从 PIT 执行中排除测试

Excluding tests from execution by PIT

我必须将我的集成测试排除在 PIT 执行之外。从 1.3.0 版本开始有一个选项 excludedTestClasses。我试图通过 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>

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

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

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

您的过滤器应该类似于

<excludedTestClasses>
    <param>de.comp.**.*IT</param>
</excludedTestClasses>    

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

我用的是pitest-maven版本1.4.2.

这个配置适合我:

<excludedTestClasses>          
  <excludedTestClass>de.com.**.*IT</excludedTestClass>
</excludedTestClasses>

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

<excludedTestClasses>
    <param>de.comp.**.*IT</param>
</excludedTestClasses>   

对于使用 Gradle 插件的用户:

pitest {
    excludedTestClasses = ['de.comp.**.*IT']
}