带有@PrepareForTest的Powermock Mockito在JaCoCo maven插件中没有提供正确的覆盖。还有别的选择吗?
当使用带有@PrepareForTest的Powermock Mockito在JaCoCo maven插件中没有提供正确的覆盖。还有别的选择吗?,maven,junit,mockito,powermock,jacoco,Maven,Junit,Mockito,Powermock,Jacoco,当使用PowerMock和Mockito来存根和测试私有方法时,如果我们包含任何带有@PrepareForTest({AccountClientService.class})的类,则AccountClientService.java中的所有方法都不会显示任何覆盖范围。尝试了stackoverflow建议中的各种方法,如动态、脱机检测,并使用了@Rule public PowerMockRule Rule=new PowerMockRule(),但仍然没有成功。各种版本的跟踪和错误。我的POM如下
PowerMock
和Mockito
来存根和测试私有方法时,如果我们包含任何带有@PrepareForTest({AccountClientService.class})
的类,则AccountClientService.java
中的所有方法都不会显示任何覆盖范围。尝试了stackoverflow建议中的各种方法,如动态、脱机检测,并使用了@Rule public PowerMockRule Rule=new PowerMockRule()
,但仍然没有成功。各种版本的跟踪和错误。我的POM如下所示:
4.0.0
com.codependent.jacocopower
杰科科波莫克
0.0.1-快照
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.0</version>
<configuration>
<argLine>-javaagent:path\\to\\powermock\\powermock-module-javaagent\\2.0.2\\powermock-module-javaagent-2.0.2.jar</argLine>
<!-- <useSystemClassloader>true</useSystemClassloader> -->
</configuration>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>${jacoco.version}</version>
<configuration>
<append>true</append>
</configuration>
<executions>
<execution>
<id>default-instrument</id>
<goals>
<goal>instrument</goal>
</goals>
<configuration>
<includes>
<include>**/*test*</include>
</includes>
</configuration>
</execution>
<execution>
<id>default-restore-instrumented-classes</id>
<goals>
<goal>restore-instrumented-classes</goal>
</goals>
<configuration>
<includes>
<include>**/*test*</include>
</includes>
</configuration>
</execution>
<execution>
<id>Prepare-Jacoco</id>
<goals>
<goal>prepare-agent</goal>
</goals>
<configuration>
<excludes>
<exclude>**/*test*</exclude>
</excludes>
</configuration>
</execution>
<execution>
<id>report</id>
<phase>prepare-package</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.jacoco</groupId>
<artifactId>org.jacoco.agent</artifactId>
<version>${jacoco.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<version>${powermock.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito</artifactId>
<version>${powermock.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4-rule-agent</artifactId>
<version>1.6.4</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>
</dependencies>
<properties>
<powermock.version>1.6.4</powermock.version>
<jacoco.version>0.7.5.201505241946</jacoco.version>
<jacoco.outputDir>${project.basedir}/target/jacoco.exec</jacoco.outputDir>
<!-- <argLine>-javaagent:path\\to\\org.jacoco.agent\\0.7.5.201505241946\\org.jacoco.agent-0.7.5.201505241946-runtime.jar=destfile=${basedir}\\target\\jacoco.exec</argLine>
--></properties>
org.apache.maven.plugins
maven surefire插件
2.22.0
-javaagent:path\\to\\powermock\\powermock模块javaagent\\2.0.2\\powermock-module-javaagent-2.0.2.jar
org.jacoco
jacocomaven插件
${jacoco.version}
真的
默认工具
仪器
**/*试验*
默认还原检测类
恢复插入指令的类
**/*试验*
准备Jacoco
配制剂
**/*试验*
报告
准备包装
报告
org.jacoco
org.jacoco.agent
${jacoco.version}
测试
org.powermock
powermock-module-junit4
${powermock.version}
测试
org.powermock
powermock api mockito
${powermock.version}
测试
org.powermock
powermock-module-junit4-rule-agent
1.6.4
测试
朱尼特
朱尼特
4.10
测试
1.6.4
0.7.5.201505241946
${project.basedir}/target/jacoco.exec
按照以下链接执行步骤。它开始工作了。我已经删除了所有与JaCoCo和maven surefire插件相关的插件,并在我的测试文件中包含了如下内容
感谢上述博客的作者。按照下面的链接执行步骤。它开始工作了。我已经删除了所有与JaCoCo和maven surefire插件相关的插件,并在我的测试文件中包含了如下内容
感谢上述博客的作者。如果您需要更多信息,请告诉我。我可以在这里提供或更新我的问题。我被这件事缠住了一段时间。厌倦了所有的方法如果你需要更多的信息,请告诉我。我可以在这里提供或更新我的问题。我被这件事缠住了一段时间。厌倦了所有的方法