【发布时间】:2013-06-12 14:12:45
【问题描述】:
我正在使用 maven 3.0.4,JRE 1.7.0_09。
当我使用mvn clean install 时,我所有的测试都通过并且一切看起来都很好 - 这是我的万无一失的插件配置:
<plugin>
<version>2.12.4</version>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<!-- -XX:-UseSplitVerifier is for java 7 -->
<argLine>-XX:-UseSplitVerifier</argLine>
</configuration>
</plugin>
现在,当我mvn cobertura:cobertura 我的一些测试出现这样的错误时:
Expecting a stackmap frame at branch target ....
还有一些错误让我明白它没有使用 JRE7 运行(例如,Encountered " "|" "| "" at line...)
这是我的 cobertura 插件配置:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<formats>
<format>html</format>
<format>xml</format>
</formats>
</configuration>
</plugin>
报告是:
<reporting>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<formats>
<format>html</format>
<format>xml</format>
</formats>
</configuration>
</plugin>
</plugins>
</reporting>
我看到很多threads 都在谈论这个问题,解决方案是添加这一行<argLine>-XX:-UseSplitVerifier</argLine>,但它没有帮助。
我在这里做错了什么?
【问题讨论】:
-
如果您不使用 cobertura,我建议您使用 JaCoCo,它具有完整的 java 7 支持并且正在积极维护中。 Cobertura 似乎已经死了。
-
谢谢,我正在尝试,我收到了一个新的question。
-
拆分验证器对我有用..
-
@MichelJung - 嗯,我尝试了 jacoco,但覆盖率急剧下降 - 在一个项目上,从 97.4% 下降到 81.1%。这是典型的吗?
-
JaCoCo 不适用于 PowerMock 字节码检测。也就是说,您使用 PowerMock @PrepareForTest 的任何类都不会计入 JaCoCo 的代码覆盖率中。 (github.com/jacoco/eclemma/issues/15)
标签: java maven jenkins java-7 cobertura