gpt4 book ai didi

android - 运行单个测试以检查代码覆盖率 Jacoco Android

转载 作者:行者123 更新时间:2023-12-03 13:24:49 26 4
gpt4 key购买 nike

我正在使用 ./gradlew createDebugCoverageReport生成我所有的 Android 仪器 (Robotium) 测试的代码覆盖率报告。但是我现在需要运行所有测试才能获得覆盖率报告。如何指定一个测试(或单个测试类)来执行并获取覆盖率报告?我在测试开发过程中使用它,一次运行所有测试太慢了。

最佳答案

我知道这是一个旧帖子,但这就是我的做法。
1.如果您还没有安装仪器测试应用程序,请先安装。
(味道可能会有所不同。在这种情况下,它是 debug 。)

// install instrumentation test app if you have not
./gradlew installDebugAndroidTest
2. 执行你想要的测试(或测试、类、包..)。
就我而言,我选择了 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
请注意,我传递了 2 个参数:
答: -e coverageFile /data/data/com.org.android.test/coverage.ec和,
B. -e coverage true这两个选项将在设备内生成覆盖报告。
如果您不熟悉 adb shell am 的运行测试命令,请引用 this official documentation .
3. 然后从设备中获取coverage.ec 文件。
// 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
这里有两点需要注意。
A. 你应该改变 [YOUR_PROJECT_DIRECTORY]到您的项目目录。或者,您可以更改整个 [YOUR_PROJECT_DIRECTORY]/build/outputs/code_coverage/debugAndroidTest/connected/coverage.exec到您想要的任何目录和文件名。 (也许是桌面?)
B. 但最终内容应该有扩展名 .exec ,因为 jacoco 只会接受那些。
4. 然后使用 Android Studio 查看覆盖率报告。
在 Android Studio 中,请导航至 run > Show Code Coverage Data .然后会出现一个选择窗口。选择之前生成的 coverage.exec .然后 Android Studio 将处理数据并向您显示覆盖率数据。您可以直接查看代码覆盖率数据,或者进一步生成覆盖率报告。

关于android - 运行单个测试以检查代码覆盖率 Jacoco Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30517349/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com