求助大佬们,现在Android Studio上的gradle项目中,做单元测试时,一用上powermock的prepareForTest注解,就会使jacoco覆盖率变为0 的异常情况。
网上搜集到的解决方法:
1)jacoco offline模式
2)使powermock agent在jacoco agent之后加载
但是,弄了offline还是覆盖率0(也可能配错了QAQ),第二个方法也不会弄。。。
求助大佬们,要怎么配置或者解决异常??
(希望能给个配置代码,跪谢)
求助大佬们,现在Android Studio上的gradle项目中,做单元测试时,一用上powermock的prepareForTest注解,就会使jacoco覆盖率变为0 的异常情况。
网上搜集到的解决方法:
1)jacoco offline模式
2)使powermock agent在jacoco agent之后加载
但是,弄了offline还是覆盖率0(也可能配错了QAQ),第二个方法也不会弄。。。
求助大佬们,要怎么配置或者解决异常??
(希望能给个配置代码,跪谢)
以下回答参考 皆我百晓生、券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。
这个问题是由于Jacoco无法识别PowerMock 代理生成的测试数据而导致的。为了处理这种情况,你可以尝试以下步骤:
dependencies {
implementation 'org.jacoco:javaagent:0.8.4'
}
@Ignore
注解来标记你不想被检测的方法或接口。例如,如果你有一个名为MyService
的服务类,并且你想让PowerMock 代理忽略它的一些方法,你可以这样做:
import org.powermock.modules.junit4.PowerMockRunner;
import org.powermock.modules.junit4.PowerMockRunnerDelegate;
public class MyService {
@Override
public void myMethod() throws Exception {}
// 更多的忽略方法...
}
然后,在你的测试方法中,你可以像下面这样使用@Ignore
注解:
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.MockedStatic;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
@RunWith(PowerMockRunner.class)
@PrepareForTest(MyService.class)
public class MyClassTest {
@Test
public void testMyMethod() throws Exception {
// 测试逻辑
}
}
请注意,这只是一个基本的例子,具体的配置可能需要根据你的具体需求进行调整。