当前位置: 首页 > 知识库问答 >
问题:

使用 Powermock 和渐变进行代码覆盖

杜君浩
2023-03-14

我在测试中使用了powermock。由于powermock工具类,我没有得到适当的覆盖与jacoco。

  1. 我可以看到,当我在IDE中运行测试时,Android Studio中的IntelliJ IDEA覆盖率运行器为我提供了适当的覆盖率。IDEA代码覆盖率是如何工作的
  2. 我已经读过,离线jacoco仪器可以用来获得覆盖率。如何在格拉德做到这一点?有gradle插件吗

共有2个答案

王鹏飞
2023-03-14

我无法帮助您使用gradle,但我已经设法使用powermock-mode-javaagent使用Jacoco和maven生成PowerMock覆盖。也许您可以将此pom转换为gradle文件。

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

<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

在这里您可以看到声纳考虑了PowerMock嘲笑的静态方法new语句:

如果要模拟< code>new语句,请确保使用< code>PowerMockRule而不是< code>PowerMockRunner。

看看这个测试

常源
2023-03-14

“雅各离线”在PowerMock文档中提到;并且有一个指向 maven 示例的链接:

最坏的情况是,你必须研究这个解决方案是如何工作的,然后把它应用到Gradle上。

 类似资料:
  • 我正在尝试集成Jacoco,以便使用Maven获得Cucumber测试的代码覆盖率。以下是我的项目结构: > -src主java页面 -src主java助手 -src-测试-java-资源-功能 -src测试java步骤 以下是我的POM中的Jacoco配置。xml 我能够生成代码覆盖率报告。但是,在报告中,它涵盖了-src主包中的所有类。根据不同的google搜索和SO帖子,我试图修改POM以排

  • 我遵循了这里的说明: null 我认为,问题出在下面这一行: 但是,如果删除这一行,尽管@PrepareForTest行不变,但会出现以下错误:

  • 我正在使用Cobertura maven插件[2.7版]来了解测试的代码覆盖率。我正在使用PowerMock[1.6.6]模拟依赖对象。但是当我运行mvn cobertura:cobertura并检查报告时,覆盖率保持不变。当我不使用嘲弄的时候,它很好用。这是兼容性问题吗?我多次尝试mvn clean,只是为了确保报告是新生成的。 这是我的pom.xml 对此我们非常感谢您的帮助。

  • 我正在使用Ant在RHEL6机器上运行Sonar Java代码分析。对于集成测试分析,我使用JaCoCo sonar插件。我的库类路径中有插件。当我运行Selenium测试时,会生成一个“jacoco.exec”文件(10个测试大约1MB)。然后在我的Sonar Ant目标中激活Jacoco插件,并将其导入Sonar。声纳分析日志显示,已对Jacoco文件进行了分析(耗时约5000毫秒)。然而,我

  • 我正试图在詹金斯的sonarqube仪表板上获取代码覆盖率报告。代码覆盖率报告即将发布,但仅显示4.6%的覆盖率。经过调查,我发现使用PowerMock编写的测试类被跳过了。 经过进一步调查,我发现“JaCoCo不能很好地处理动态修改/创建的类(这就是powermock的工作方式)。这是一个已知的限制,我们目前对此无能为力”。 是否有任何解决办法,以便我也可以为使用PowerMock编写的测试类获

  • 问题内容: 我的代码结构如下: 事件 消息 其他代码 功能测试 在jacoco的构建脚本中,首先它必须复制所有类并使用该类目录在其上运行该工具。您能在这里描述目标目录的步骤吗?我的意思是我该如何提及在其上运行代码覆盖率的目录。 构建后,每个文件夹都有其自己的目标文件夹,并在其旁边具有类。 步骤如下: 在詹金斯将项目建设作为工作 部署到用户阶段 在詹金斯(Jenkins)运行jacoco报告工作 J