Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android仪器化测试在生成覆盖率方面有时有效,有时失败_Android_Gradle_Android Espresso_Android Testing_Gradle Kotlin Dsl - Fatal编程技术网

Android仪器化测试在生成覆盖率方面有时有效,有时失败

Android仪器化测试在生成覆盖率方面有时有效,有时失败,android,gradle,android-espresso,android-testing,gradle-kotlin-dsl,Android,Gradle,Android Espresso,Android Testing,Gradle Kotlin Dsl,我目前在使用connectedAndroidTest生成仪表化测试覆盖率和emma报告时遇到了一个奇怪的问题。当我运行/gradlew connectedAndroidTest时,它有时工作并生成报告,有时不工作 当我通过adb shell am instrument运行时,它总是工作的,但问题是我需要获得.ec文件以自动与单元测试报告统一。在第二次试验中,我没有改变任何东西 输出: 以下是我的Gradle DSL设置: 与Android相关的 Jacoco 测试 有人知道如何使它正常工作吗?似

我目前在使用
connectedAndroidTest
生成仪表化测试覆盖率和emma报告时遇到了一个奇怪的问题。当我运行
/gradlew connectedAndroidTest
时,它有时工作并生成报告,有时不工作

当我通过
adb shell am instrument
运行时,它总是工作的,但问题是我需要获得
.ec
文件以自动与单元测试报告统一。在第二次试验中,我没有改变任何东西

输出:

以下是我的Gradle DSL设置:

与Android相关的

Jacoco

测试


有人知道如何使它正常工作吗?似乎在实际完成测试之前,
app:createDebugAndroidTestCoverageReport
内部任务正在由gradle执行。

将gradle降级到4.0.0,gradle包装器降级到6.1.1对我有效

将gradle降级到4.0.0,gradle包装器降级到6.1.1对我有效

您是否同时运行多个测试?(多个模拟器在运行?)我也有类似的问题,当我有更多的模拟器时,这种错误发生得更多。当我有1个仿真器时不明显,但当我有4个仿真器并行运行时非常明显。@CheolhoJeon,正如您在这一行中看到的
在Pixel_2_API_28(AVD)-9上开始8个测试
我正在运行8个测试,但在1个仿真器中。您是否能够一次成功运行1个测试?您好@DimasMendes,您是否找到了解决此问题的方法?就连我也面临着同样的问题。@Kavita\p还没有发现任何问题,我认为这是一个有待在将来的更新中解决的错误。您是否同时运行多个测试?(多个模拟器在运行?)我也有类似的问题,当我有更多的模拟器时,这种错误发生得更多。当我有1个仿真器时不明显,但当我有4个仿真器并行运行时非常明显。@CheolhoJeon,正如您在这一行中看到的
在Pixel_2_API_28(AVD)-9上开始8个测试
我正在运行8个测试,但在1个仿真器中。您是否能够一次成功运行1个测试?您好@DimasMendes,您是否找到了解决此问题的方法?甚至我也面临同样的问题。@Kavita\u p还没有发现任何问题,我认为这是一个有待于在未来更新中解决的错误。这对我来说只有帮助,当我不再使用
ANDROIDX\u TEST\u ORCHESTRATOR
时:这对我来说只有帮助,当我也不再使用
ANDROIDX\u TEST\u ORCHESTRATOR
时:
MacBook-Pro:test-android dimas$ ./gradlew connectedAndroidTest

> Configure project :app
OneSignal Warning: Could not get AGP plugin version

> Task :app:kaptDebugAndroidTestKotlin
Annotation processors discovery from compile classpath is deprecated.
Set 'kapt.includeCompileClasspath = false' to disable discovery.
Run the build with '--info' for more details.

> Task :app:createDebugAndroidTestCoverageReport FAILED

> Task :app:connectedDebugAndroidTest
Starting 8 tests on Pixel_2_API_28(AVD) - 9

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:createDebugAndroidTestCoverageReport'.
> java.io.IOException: No coverage data to process in directories [/Users/.../app/build/outputs/code_coverage/debugAndroidTest/connected]

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.5/userguide/command_line_interface.html#sec:command_line_warnings

BUILD FAILED in 1m 7s
61 actionable tasks: 13 executed, 48 up-to-date
MacBook-Pro:test-android dimas$ ./gradlew connectedAndroidTest

> Configure project :app
OneSignal Warning: Could not get AGP plugin version

> Task :app:connectedDebugAndroidTest
Starting 8 tests on Pixel_2_API_28(AVD) - 9

Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.5/userguide/command_line_interface.html#sec:command_line_warnings

BUILD SUCCESSFUL in 56s
61 actionable tasks: 2 executed, 59 up-to-date
defaultConfig {
       ...
       testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
       ...
    }

buildTypes {
    all {
        multiDexEnabled = true
        ...
    }

    getByName("debug") {
        isDebuggable = true
        isMinifyEnabled = false
        isTestCoverageEnabled = true

        proguardFiles(
            getDefaultProguardFile("proguard-android-optimize.txt"),
            "proguard-rules.pro"
        )
        ...
    }
    ...
}
/* Jacoco & Tests Related tasks */
jacoco {
    toolVersion = "0.8.5"
}
testOptions {
    animationsDisabled = true
    unitTests.apply {
        isReturnDefaultValues = true
        isIncludeAndroidResources = true
    }
}

val sharedTestDir = "src/sharedTest/java"
sourceSets.getByName("test") {
    java.srcDir(sharedTestDir)
}

sourceSets.getByName("androidTest") {
    java.srcDir(sharedTestDir)
}