java test circle_java-使用Jacoco和Circle CI生成测试覆盖率失败
CircleCI does not currently support Android模擬器.根據(jù)我的經(jīng)驗,即使有一個可行的方法,也不會長期有效. (鏈接從2018年1月17日開始).
話雖如此,仍然可以通過使用Firebase Test Lab來收集集成測試覆蓋率的一個好方法.
設(shè)置項目以在Firebase Test Lab上運(yùn)行測試后,您應(yīng)該可以按照以下方式編輯項目:
>您將需要更新config.yml文件的Firebase測試任務(wù).注意,我使用CIRCLE_BRANCH和CIRCLE_BUILD_NUM來確保結(jié)果在每次構(gòu)建時都保存在結(jié)果存儲區(qū)中的特定位置.您將要用實際的存儲區(qū)位置替換YOUR_LOCATION,并用運(yùn)行Firebase測試的設(shè)備替換DEVICE.
您還將需要用用于運(yùn)行儀器測試的Jacoco命令替換LOCATION_OF_ANDROID_TESTS(您可以通過在本地運(yùn)行儀器測試然后尋找此名稱來找到它.)gsutil命令被設(shè)置為從存儲桶中提取覆蓋文件它們被流式傳輸,然后刪除存儲桶中的文件夾.如果使用gsutil -m -o命令,則可以更快地完成此操作.
值得一提的是,這將使構(gòu)建失敗的結(jié)果保留在存儲桶中(因此,您可能需要移出該命令,以確保存儲桶中不會出現(xiàn)數(shù)據(jù)過多的情況).
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}
>在集成測試運(yùn)行之后(或之前,您可以選擇),您將需要運(yùn)行單元測試.
>單元測試運(yùn)行后,您將需要運(yùn)行合并報告Jacoco任務(wù),以將單元測試覆蓋率報告與集成測試覆蓋率報告合并.
最后說明:為了在Firebase上將報告輸出到測試設(shè)備上,我必須添加一個包含WRITE_EXTERNAL_STORAGE權(quán)限的調(diào)試清單.這是因為我的應(yīng)用程序未在發(fā)行版本中使用此權(quán)限.如果您的應(yīng)用程序已在使用此權(quán)限,則無需添加調(diào)試清單.
新人創(chuàng)作打卡挑戰(zhàn)賽發(fā)博客就能抽獎!定制產(chǎn)品紅包拿不停!總結(jié)
以上是生活随笔為你收集整理的java test circle_java-使用Jacoco和Circle CI生成测试覆盖率失败的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: data fastboot 擦除_fas
- 下一篇: 时频分析:短时傅里叶变换应用