Android Studio Robolectric测试没有覆盖

时间:2019-01-30 13:02:15

标签: android android-studio robolectric jacoco robolectric-gradle-plugin

首先,我知道这个问题似乎是重复的。但是,最近没有其他问题可以解决。我已经尝试过了。

问题如下:

当使用带有Jacoco作为覆盖范围生成器的Android Studio内部“运行于覆盖范围”功能时,我没有获得RobolectricRunner测试的任何覆盖范围。

我的testOptions部分在我的应用程序级别build.gradle中:

testOptions {
        reportDir = "$project.buildDir/test-results"
        unitTests.returnDefaultValues = true
        unitTests {
            includeAndroidResources = true
        }
    }

我正在使用

AS 3.3
Gradle 4.10
classpath 'com.android.tools.build:gradle:3.2.0'
testImplementation "org.robolectric:robolectric:4.0.1"
compileSdkVersion 25 //this is a hard dependecy, can't change this one

我已经尝试了很多事情,甚至可以完全覆盖机器人,甚至可以在覆盖范围内运行我的测试,但是仍然保持在0%。

目前我没有对jacoco的任何特定引用,所以我认为我使用的是默认的Android Studio版本。如果有人可以指出如何找到该版本,我将不胜感激。

如果您需要任何其他信息,我会很乐意提供。

1 个答案:

答案 0 :(得分:0)

我认为您应该尝试在测试单元中添加jacoco的特定配置,因此最终代码在这里:


      testOptions {
        reportDir = "$project.buildDir/test-results"
        unitTests.all {
            jacoco {
                includeNoLocationClasses = true
                jvmArgs '-noverify'
            }
        }
    }