8

我必须将我的集成测试排除在 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>

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

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

4

4 回答 4

7

对于那些使用 Gradle 插件的人:

pitest {
    excludedTestClasses = ['de.comp.**.*IT']
}
于 2019-01-18T09:11:49.853 回答
6

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

你的过滤器应该看起来像

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

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

于 2018-01-27T10:11:11.307 回答
4

我使用 Pitest-maven 版本 1.4.2。

这个配置对我来说很好:

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

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

<excludedTestClasses>
    <param>de.comp.**.*IT</param>
</excludedTestClasses>   
于 2018-08-26T18:17:29.903 回答
-1

对于那些使用 Gradle 插件的人:

见配置: http: //pitest.org/quickstart/commandline/

pitest {
    excludedClasses = ['de.comp.**.*IT']
}
于 2020-03-22T19:25:54.270 回答