小编Len*_*rts的帖子

使用Robolectric和PowerMock进行领域单元测试,产生零%代码覆盖率

我按照这里的说明操作:

设置我的领域单元测试.测试全部通过但是当我尝试生成代码覆盖率以推送到SonarQube时,覆盖率报告显示0%的覆盖率.当我执行标准的Android Studio代码覆盖率时(如答案中所述:如何使用Android Studio获取代码覆盖率?),它会生成一个显示91%覆盖率的报告.然而,这种方法的问题在于它是一个html报告,并且没有办法让它生成可用于SonarQube的xml报告.

这是测试类的代码

@RunWith(RobolectricTestRunner.class)
@PowerMockIgnore({"org.mockito.*", "org.robolectric.*", "android.*"})
@PrepareForTest({Realm.class, RealmConfiguration.class, RealmCore.class, RealmLog.class})
@SuppressStaticInitializationFor("io.realm.internal.Util")
@Config(constants = BuildConfig.class, manifest =    "src/main/AndroidManifest.xml", sdk = 21)
public class DecisionTreeTest
{
    @Captor
    ArgumentCaptor<Realm.Transaction.Callback> realmCallbackCaptor;

    // Robolectric, Using Power Mock https://github.com/robolectric/robolectric/wiki/Using-PowerMock
    @Rule
    public PowerMockRule rule = new PowerMockRule();

    private Context mockContext;

    private final byte[] fakeRealmKey = {
        -122, -115, -113, -111, -105, -104, -101, -99, -94, -93, -90, -87,
        -77, -74, -67, -66, -63, -61, -56, -53, -48, -47, -33, -31, …
Run Code Online (Sandbox Code Playgroud)

unit-testing code-coverage realm powermock robolectric

5
推荐指数
1
解决办法
434
查看次数