簡體   English   中英

運行單個測試以檢查代碼覆蓋率 Jacoco Android

[英]Run single test to check code coverage Jacoco Android

我正在使用./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 個參數:

A. -e coverageFile /data/data/com.org.android.test/coverage.ec和,

B. -e coverage true

這兩個選項將在設備內生成覆蓋報告。

如果您不熟悉通過adb shell am命令運行測試,請參閱此官方文檔

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 將處理數據並向您顯示覆蓋率數據。 您可以直接查看代碼覆蓋率數據,或者進一步生成覆蓋率報告。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM