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)
}