我正在使用 Powermock,但是当我运行 Eclemma 覆盖时,由于 EclEmma 的已知问题,Powermock 测试用例不会被考虑在最终分数中。
我在stackoverflow上搜索的解决方法和其他答案建议有:
@Rule
public PowerMockRule rule = new PowerMockRule();
static {
PowerMockAgent.initializeIfNeeded();
}
然后添加像 powermock-module-javaagent、powermock-module-junit4-rule-agent 这样的 jars。
在我运行代码时执行此操作然后发现错误:
java.lang.VerifyError: Expecting a stackmap frame at branch target 7
对于这个答案,建议使用各种版本的 javassit。但我无法完成这项工作并得到同样的错误。
我的 pom.xml 看起来像:
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito</artifactId>
<version>1.6.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<version>1.6.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-javaagent</artifactId>
<version>1.6.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4-rule-agent</artifactId>
<version>1.6.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.21.0-GA</version>
<scope>test</scope>
</dependency>
如何让 PowerMock 测试用例包含在最终 Eclemma 分数中?