[英]Run single test to check code coverage Jacoco Android
我正在使用./gradlew createDebugCoverageReport
來生成我所有 Android 檢測 (Robotium) 測試的代碼覆蓋率報告。 但是我現在需要運行所有測試才能獲得覆蓋率報告。 如何指定一個測試(或單個測試類)來執行並獲取覆蓋率報告? 我在測試開發過程中一直在使用它,必須一次運行所有測試太慢了。
我知道這是一個舊帖子,但這是我的方法。
(味道可能會有所不同。在這種情況下,它是debug
。)
// install instrumentation test app if you have not
./gradlew installDebugAndroidTest
就我而言,我選擇了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 個參數:
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
這里有兩點需要注意。
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 將處理數據並向您顯示覆蓋率數據。 您可以直接查看代碼覆蓋率數據,或者進一步生成覆蓋率報告。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.