我的pom文件中有以下内容:
的pom.xml
<reporting>
<plugins>
<plugin>
<groupId>org.pitest</groupId>
<artifactId>pitest-maven</artifactId>
<version>1.1.8</version>
<configuration>
<targetClasses>
<param>com.myService.utility.*</param>
</targetClasses>
<reportsDirectory>/my-service/target</reportsDirectory>
<targetTests>
<param>com.myService.utility.util.*</param>
</targetTests>
<timeoutConstant>5000</timeoutConstant>
<excludeClasses>
<param>com.myService.utility.EmailImpl.java</param>
<param>com.myService.utility.Email.java</param>
<param>com.myService.utility.ValidationUtil.java.java</param>
</excludeClasses>
<avoidCallsTo>
<avoidCallsTo>org.apache.log4j</avoidCallsTo>
<avoidCallsTo>org.slf4j</avoidCallsTo>
<avoidCallsTo>org.apache.commons.logging</avoidCallsTo>
</avoidCallsTo>
</configuration>
<reportSets>
<reportSet>
<reports>
<report>report</report>
</reports>
</reportSet>
</reportSets>
</plugin>
</plugins>
</reporting>
当我运行测试时,超时似乎没有从默认的3000更改,excludeClasses中的类仍然被拾取,它仍然抱怨log4j的配置(althoguh它是log4j2所以这看起来像我的没有指定的错误)。我在PITest文档或其他任何地方都找不到很多例子,减去使用targetClasses和targetTests的非常简单的例子
编辑:我尝试更改报告代码以构建代码并删除了reportSets部分。仍然没有变化;实用程序src包中包含6个类,其中我在pom中列出的3个类应该被排除,并且测试对应包中有3个测试文件。记者仍在进行排除,并将其显示为0%线和突变覆盖率。尽管有avoidCallsTo值
,它也抱怨log4j配置答案 0 :(得分:2)
需要在build / plugins下提供配置,而不是报告。
不幸的是,当maven无法将XML映射到插件时,maven不会抛出任何错误。
包含/排除的类接受针对java包的globs - 而不是源文件,所以应该看起来像: -
<excludeClasses>
<param>com.myService.utility.EmailImpl</param>
<param>com.myService.utility.Email</param>
<param>com.myService.utility.ValidationUtil</param>
</excludeClasses>