我正在
由于缺少执行数据文件而跳过JaCoCo执行:/scratch/jenkins/workspace/sonar-test/target/jacoco.exec错误
我的pom档案是:
<profile>
<id>test-coverage</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven.surefire.plugin.version}</version>
<configuration combine.self="override">
<redirectTestOutputToFile>true</redirectTestOutputToFile>
<testFailureIgnore>true</testFailureIgnore>
<groups>com.project.test.annotation.QuickTest</groups>
</configuration>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.1.201405082137</version>
<executions>
<execution>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>report</id>
<phase>prepare-package</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
我错过了什么?
答案 0 :(得分:15)
您需要在surefire插件配置中添加$ {argLine}。 例如:
<build>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.1.201405082137</version>
<executions>
<execution>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>report</id>
<phase>prepare-package</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.14.1</version>
<configuration>
<argLine>${argLine}</argLine>
</configuration>
</plugin>
</plugins>
</build>
如果您愿意,可以将其他参数添加到surefire插件中:
<argLine>${argLine} -XX:PermSize=128m -XX:MaxPermSize=512m</argLine>
答案 1 :(得分:15)
缺少jacoco.exec
的另一个原因可能是项目中没有任何单元测试。
编辑: 我想知道,为什么我的答案被否决,因为没有人在评论中留下任何理由。 我们在包含3个子项目的项目中有相同的错误消息。其中一个是新的,没有任何测试 - 在添加一个虚拟单元后,测试错误消失了。
答案 2 :(得分:3)
将<profile>
的{{1}}更改为,注意:使用<build>
的最新版本
jacoco-maven-plugin