首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有jacoco的声纳仅显示testng覆盖范围,而不显示powermock覆盖范围

带有jacoco的声纳仅显示testng覆盖范围,而不显示powermock覆盖范围
EN

Stack Overflow用户
提问于 2015-08-07 02:32:27
回答 3查看 4.8K关注 0票数 3

我们有一个多模块的maven项目。

每个模块都有几个testng和powermock单元测试用例。我们在代码覆盖率报告中使用了jacoco。但是,jacoco正在分析基于testng单元测试用例的单元测试覆盖率,而忽略了powermock单元测试用例。因此,总代码覆盖率越来越低。

如何将jacoco配置为同时获取testng和jacoco测试用例?

EN

回答 3

Stack Overflow用户

发布于 2015-08-11 00:22:41

PowerMock是known,不能很好地与JaCoCo一起工作。

票数 0
EN

Stack Overflow用户

发布于 2015-09-28 20:06:07

正如bkail所说,jacoco和powermock工具不能很好地混合。

我编写了一个基于Cobertura的替代maven插件,它允许您正确计算powermock测试覆盖的类的覆盖率。你可以在这里看一下(任何反馈都会非常感谢):

https://github.com/QualInsight/qualinsight-mojo-cobertura

我目前正在使用powermock (总共500k NCLOC,使用powermock的110+测试类)在一组项目上尝试它来检测but /奇怪的行为,但任何其他反馈都将不胜感激。

此maven插件生成的UT和IT覆盖报告可以使用通用测试覆盖插件直接导入到SonarQube中(请参阅项目文档),当SonarQube接受以下拉取请求时,总体覆盖也将可用:

https://github.com/SonarSource/sonar-generic-coverage/pull/5

作为附注,在项目页面上解释了导致编写cobertura-maven-plugin替代品的原因。

希望它能帮上忙!

干杯

票数 0
EN

Stack Overflow用户

发布于 2018-08-31 06:23:21

我已经设法使用powermock-module-javaagent生成了Jacoco的PowerMock覆盖范围。

只需确保将powermock代理放在 jacoco代理之后:

代码语言:javascript
复制
<artifactId>maven-surefire-plugin</artifactId>
            <configuration>
                <useSystemClassLoader>true</useSystemClassLoader>
                <argLine>${jacocoArgLine} -javaagent:${settings.localRepository}/org/powermock/powermock-module-javaagent/${powermock.version}/powermock-module-javaagent-${powermock.version}.jar -noverify</argLine>
...

如果你想看一个例子,可以看看这个项目:https://github.com/jfcorugedo/sonar-scanner

在这里,您可以看到sonar考虑了PowerMock模拟的静态方法和new语句:

如果您想模拟new语句,请确保使用PowerMockRule而不是PowerMockRunner

看一看this test

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31863292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档