java test circle_java-使用Jacoco和Circle CI生成测试覆盖率失败
CircleCI does not currently support Android模擬器.根據我的經驗,即使有一個可行的方法,也不會長期有效. (鏈接從2018年1月17日開始).
話雖如此,仍然可以通過使用Firebase Test Lab來收集集成測試覆蓋率的一個好方法.
設置項目以在Firebase Test Lab上運行測試后,您應該可以按照以下方式編輯項目:
>您將需要更新config.yml文件的Firebase測試任務.注意,我使用CIRCLE_BRANCH和CIRCLE_BUILD_NUM來確保結果在每次構建時都保存在結果存儲區中的特定位置.您將要用實際的存儲區位置替換YOUR_LOCATION,并用運行Firebase測試的設備替換DEVICE.
您還將需要用用于運行儀器測試的Jacoco命令替換LOCATION_OF_ANDROID_TESTS(您可以通過在本地運行儀器測試然后尋找此名稱來找到它.)gsutil命令被設置為從存儲桶中提取覆蓋文件它們被流式傳輸,然后刪除存儲桶中的文件夾.如果使用gsutil -m -o命令,則可以更快地完成此操作.
值得一提的是,這將使構建失敗的結果保留在存儲桶中(因此,您可能需要移出該命令,以確保存儲桶中不會出現數據過多的情況).
sudo pip install -U crcmod
sudo gcloud auth activate-service-account --key-file=${HOME}/gcloud-service-key.json
sudo gcloud --quiet config set project ${GOOGLE_PROJECT_ID}
sudo gcloud firebase test android run \n --type instrumentation \n --app PATH_TO_APK \n --test PATH_TO_TEST_APK \n --device DEVICE_OF_YOUR_CHOOSING \n --environment-variables coverage=true,coverageFile="/sdcard/coverage.ec" \n --directories-to-pull=/sdcard \n --results-dir=${CIRCLE_BRANCH}_${CIRCLE_BUILD_NUM}
sudo gsutil -m cp -r -U gs://test-lab-YOUR_LOCATION/${CIRCLE_BRANCH}_${CIRCLE_BUILD_NUM}/DEVICE/artifacts/coverage.ec app/build/outputs/code_coverage/LOCATION_OF_ANDROID_TESTS/connected/coverage.ec
sudo gsutil rm -r gs://test-lab-YOUR_LOCATION/${CIRCLE_BRANCH}_${CIRCLE_BUILD_NUM}
>在集成測試運行之后(或之前,您可以選擇),您將需要運行單元測試.
>單元測試運行后,您將需要運行合并報告Jacoco任務,以將單元測試覆蓋率報告與集成測試覆蓋率報告合并.
最后說明:為了在Firebase上將報告輸出到測試設備上,我必須添加一個包含WRITE_EXTERNAL_STORAGE權限的調試清單.這是因為我的應用程序未在發行版本中使用此權限.如果您的應用程序已在使用此權限,則無需添加調試清單.
新人創作打卡挑戰賽發博客就能抽獎!定制產品紅包拿不停!總結
以上是生活随笔為你收集整理的java test circle_java-使用Jacoco和Circle CI生成测试覆盖率失败的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: data fastboot 擦除_fas
- 下一篇: 时频分析:短时傅里叶变换应用