Внесите эти изменения в файл build.gradle:
apply plugin: 'jacoco'
Также добавьте
testCoverageEnabled true
отладке {} в buildTypes.
Я не могу подчеркнуть важность testCoverageEnabled, он обрабатывает файлы, и вы не сможете получить покрытие без него. Убедитесь, что эта строка добавлена правильно.
Для правильной настройки 'build.gradle' проверьте 'build / middleates'.
Добавить разрешение на чтение и запись для внешнего хранилища в AndroidManifest.xml
В функции onDestroy () MainActivity.java добавьте следующие строки:
Log.d("StorageSt", Environment.getExternalStorageState());
String coverageFilePath = Environment.getExternalStorageDirectory() + File.separator+ "coverage.exec";
File coverageFile = new File(coverageFilePath);
super.onStop();
if(BuildConfig.DEBUG)
{
try {
Class<?> emmaRTClass = Class.forName("com.vladium.emma.rt.RT");
Method dumpCoverageMethod = emmaRTClass.getMethod("dumpCoverageData",coverageFile.getClass(),boolean.class,boolean.class);
dumpCoverageMethod.invoke(null, coverageFile,true,false);
}
catch (Exception e) {}
Запустите ваше приложение, и вы найдете cover.exec в / sdcard /. Если покрытие на эмуляторе составляет 37 байт, попробуйте его на реальном устройстве или создайте APK и поместите его в эмулятор, чтобы установить его.
После этого вы можете вставить в файл cover.exec свой компьютер и с помощью jacoco сгенерировать из него отчет в формате HTML.