我正在使用./gradlew createDebugCoverageReport生成所有Android检测(Robotium)测试的代码覆盖率报告.但我需要运行所有测试才能获得覆盖率报告.如何指定执行单个测试(或单个测试类)并获取覆盖率报告?我在测试开发过程中对它进行了测试,一次运行所有测试的速度太慢了.
我知道这是一篇旧文章,但我是这样做的。
(味道可能会有所不同。在这种情况下,它是debug。)
// install instrumentation test app if you have not
./gradlew installDebugAndroidTest
Run Code Online (Sandbox Code Playgroud)
就我而言,我选择了ClassName#methodName。
// execute one test
adb shell am instrument -w -r --no_window_animation -e coverageFile /data/data/com.org.android.test/coverage.ec -e class 'com.org.android.ClassName#methodName', -e coverage true com.org.android.test/android.support.test.runner.AndroidJUnitRunner
Run Code Online (Sandbox Code Playgroud)
请注意,我传递了 2 个参数:
A、-e coverageFile /data/data/com.org.android.test/coverage.ec并且,
B.-e coverage true
这两个选项将在设备内生成覆盖范围报告。
如果您不熟悉通过adb shell am命令运行测试,请参阅此官方文档。
// get coverage.ec data
adb shell run-as com.org.android.test cat /data/data/com.org.android.test/coverage.ec | cat > [YOUR_PROJECT_DIRECTORY]/build/outputs/code_coverage/debugAndroidTest/connected/coverage.exec
Run Code Online (Sandbox Code Playgroud)
这里有两件事需要注意。
A. 您应该更改[YOUR_PROJECT_DIRECTORY]到您的项目目录。或者,您可以将整个更改[YOUR_PROJECT_DIRECTORY]/build/outputs/code_coverage/debugAndroidTest/connected/coverage.exec为您想要的任何目录和文件名。(也许桌面?)
B.但最终的内容应该有扩展名.exec,因为jacoco只会接受那些。
在 Android Studio 中,请导航至run> Show Code Coverage Data。然后会出现一个选择窗口。选择之前生成的coverage.exec. 然后Android Studio将处理数据并向您显示覆盖率数据。您可以直接查看代码覆盖率数据,或者进一步生成覆盖率报告。
| 归档时间: |
|
| 查看次数: |
872 次 |
| 最近记录: |