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