Vin*_*eel 1 maven maven-surefire-plugin jacoco jacoco-maven-plugin
我正在使用 maven-sure fire 插件来执行测试和 Jacoco 插件来生成覆盖率报告。Jacoco 不提供覆盖率报告,而是通过调试日志失败,如下所示。
[INFO] --- jacoco-maven-plugin:0.8.0:report (jacoco-site) @ util --- [INFO] 由于缺少执行数据文件而跳过 JaCoCo 执行。
以下是 maven sure-fire 插件的外观。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.5.2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.10</version>
<configuration>
<parallel>classes</parallel>
<threadCount>8</threadCount>
<forkCount>4</forkCount>
<encoding>UTF-8</encoding>
<inputEncoding>UTF-8</inputEncoding>
<outputEncoding>UTF-8</outputEncoding>
<argLine>-Xms256m -Xmx512m -XX:MaxPermSize=128m -ea
-Dfile.encoding=UTF-8</argLine>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
这是 Jacoco 插件的样子。
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.0</version>
<configuration>
<destFile>${basedir}/target/coverage-reports/jacoco-unit.exec</destFile>
<dataFile>${basedir}/target/coverage-reports/jacoco-unit.exec</dataFile>
</configuration>
<executions>
<execution>
<id>jacoco-initialize</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>jacoco-site</id>
<phase>package</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
引用http://www.jacoco.org/jacoco/trunk/doc/prepare-agent-mojo.html:
如果您的项目已经为测试执行定义了 VM 参数,请确保它们将包含由 JaCoCo 定义的属性。
在 maven-surefire-plugin 的情况下执行此操作的一种方法是使用语法进行后期属性评估:
Run Code Online (Sandbox Code Playgroud)<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <argLine>@{argLine} -your -extra -arguments</argLine> </configuration> </plugin>另一种方法是将“argLine”定义为 Maven 属性,而不是作为 maven-surefire-plugin 配置的一部分:
Run Code Online (Sandbox Code Playgroud)<properties> <argLine>-your -extra -arguments</argLine> </properties> ... <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <!-- no argLine here --> </configuration> </plugin>
所以要么定义
<argLine>-Xms256m -Xmx512m -XX:MaxPermSize=128m -ea
-Dfile.encoding=UTF-8</argLine>
Run Code Online (Sandbox Code Playgroud)
作为财产:
<build>
<properties>
<argLine>-Xms256m -Xmx512m -XX:MaxPermSize=128m -ea
-Dfile.encoding=UTF-8</argLine>
</properties>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.10</version>
<configuration>
<!-- no argLine here -->
Run Code Online (Sandbox Code Playgroud)
或添加@{argLine}到它:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.10</version>
<configuration>
<argLine>@{argLine} -Xms256m -Xmx512m -XX:MaxPermSize=128m -ea
-Dfile.encoding=UTF-8</argLine>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2434 次 |
| 最近记录: |