我正在处理一些旧的旧代码来修复Junit,而这样做却遇到了问题。
以前在pom.xml中有一个类似下面的插件配置
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<forkMode combine.self="override">pertest</forkMode>
</configuration>
</plugin>
通过上述配置,在成功构建mvn test
之后,我可以在/ target / site文件夹中看到jacoco覆盖文件
但是为了解决一些问题,我在上面的配置中添加了一个argLine,如下所示
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<forkMode combine.self="override">pertest</forkMode>
<argLine>-Djava.security.egd=file:/dev/./urandom</argLine>
</configuration>
</plugin>
添加此选项后,mvn test
之后在目标目录中没有看到任何覆盖率文件。有人可以告诉原因吗?
我假设您的pom.xml
还包含一些jacoco-maven-plugin
配置?
该插件使用argLine
属性将jacoco代理传递给surefire和failsafe插件。如果您将自己的内容添加到surefire插件中,那么您将覆盖由jacoco插件在prepare-agent目标中创建的内容。
docs描述了一些解决方案。
((使用argLine
作为属性或使用最新的评估语法)
如果您觉得实验性,可以配置用于设置jacoco选项的属性名称,请参见propertyName config。因此,您也可以将该属性添加到surefire参数中。但是上面的两个选项应该更简单。