Powermock and sonar jacoco的覆盖率不兼容问题解决 3
来源:互联网 发布:linux 查看mysql服务 编辑:程序博客网 时间:2024/06/14 21:32
上一篇介绍了如何让surefire,failsafe和jacoco maven plugin如何结合配置,这一篇具体说说如何使用powermock的agent来解决覆盖率不兼容问题。
首先在pom中加入powermock agent maven依赖
<dependency> <groupId>org.powermock</groupId> <artifactId>powermock-module-junit4-rule-agent</artifactId> <version>${powermock.version}</version> <scope>test</scope></dependency>
Note: It’s recommended that you put powermock-module-junit4-rule-agent before junit in the classpath. (记得把这个dependency放到junit之前)。
接下来修改之前的测试代码:
修改之前的实现
@RunWith(PowrMockRunner.class)@PrepareForTest(X.class);public class MyTest { private X x; @Before public void setUp { x=PowerMockito.mock(X.class); } // Tests goes here ...}
修改之后的实现
去掉runwith,加入@Rule annotation,很简单!
@PrepareForTest(X.class);public class MyTest { @Rule PowerMockRule rule = new PowerMockRule(); private X x; @Before public void setUp { x=PowerMockito.mock(X.class); } // Tests goes here ...}
最后据说在mock final的时候要在surefire的启动参数中加入agent启动参数,这种mock我们没有使用,不过还是加上了。
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.15</version> <configuration> <argLine> -javaagent:${settings.localRepository}/org/powermock/powermock-module-javaagent/${powermock.version}/powermock-module-javaagent-${powermock.version}.jar -XX:-UseSplitVerifier ${surefireArgLine} </argLine> <useSystemClassloader>true</useSystemClassloader> </configuration> </plugin>
在我们项目中最后3种使用方式覆盖率的差别,可以看出Cobertura还是有最高的覆盖率,使用了powermock agent之后覆盖率也算不错。
参考资料:https://github.com/jayway/powermock/wiki/PowerMockAgent
1 0
- Powermock and sonar jacoco的覆盖率不兼容问题解决 3
- Powermock and sonar jacoco的覆盖率不兼容问题解决 1
- Powermock and sonar jacoco的覆盖率不兼容问题解决 2
- Powermock和jacoco动态测试覆盖率较低,统计不准确
- sonar 集成代码测试覆盖率插件jacoco
- 对于用Powermock编写的测试用例,sonar中单元测试覆盖率统计不正确的问题
- 安装部署Sonar+jacoco,生成case覆盖率统计报告
- Java代码覆盖率工具(Sonar+Jacoco)部署
- Jacoco动态监测Web项目的覆盖率
- JaCoCo:分析单元测试覆盖率的利器
- JaCoCo:分析单元测试覆盖率的利器
- JaCoCo:分析单元测试覆盖率的利器
- JaCoCo:分析单元测试覆盖率的利器
- sonar ant+jacoco 编译测试并出具测试代码覆盖率报告
- Jacoco覆盖率工具使用
- jacoco覆盖率计数器
- jacoco覆盖率统计分析
- 代码覆盖率-JaCoCo
- mysql分页处理策略
- 实时通讯之Socket.io
- setInterval
- 解决yii2框架中时区的设置问题
- Groovy中文文档——闭包
- Powermock and sonar jacoco的覆盖率不兼容问题解决 3
- Docker 简单监控
- Android之智慧北京二
- Mathematica数据处理(6)--散点图(上)
- Azkaban安装与应用
- hdu 5787 K-wolf Number
- 本周总结
- JZOJ.4685. 【NOIP2016提高A组8.12】礼物
- Angular的 $q, defer, promise