Jacoco конвертирует покрытие .ec в отчеты без покрытия.
Я смог получить отчет о покрытии кода, выполнив следующие действия:
Включите покрытие на желаемом типе сборки (например, отладка)
buildTypes { debug { testCoverageEnabled true } }
Примените плагин Jacoco и установите версию
apply plugin: 'jacoco' jacoco { version "0.7.1.201405082137" }
Бежать
./gradlew createDebugCoverageReport
Все тесты в connectedAndroidTest выполняются, и на их основе создается отчет о покрытии. Я могу найти отчеты о освещении в
app/build/outputs/reports/coverage/{buildType}/index.html
и файл cover.ec в
app/build/outputs/code-coverage/connected/coverage.ec
Но нет jacoco.exec, так как я использую Android Instrumentation вместо Robolectric.
И когда я запускаю инструментарий из ADB (полагаю, он все еще использует Эмму) следующим образом, я получаю файл cover.ec следующим образом:
$ adb shell am instrument -w -e coverage true -e coverageFile /sdcard/coverage.ec com.sample.helloworld.test/.Runner
....
OK (4 tests)
Generated code coverage data to /sdcard/coverage.ec
Но я не могу преобразовать файл cover.ec в отчет с использованием emma, так как отсутствует файл cover.em,
java -cp ~/adt-bundle-mac-x86_64-20130729/sdk/tools/lib/emma_device.jar emma report -r html -in \
coverage.em,myFile.ec,myapp_coverage1.ec -sp /path/to/myapp/src
Есть ли способ обойти эту проблему ??