2017-02-14 4 views
0

В настоящее время я изучаю автоматическое тестирование GUI на Android и по какой-то причине мне нужен инструмент, который может генерировать отчет о покрытии кода от ручного тестирования , После долгих поисков я обнаружил, что Jacoco и Emma упоминают ручной подход на своем сайте. Но, к сожалению, в Интернете нет up-to-date-working example.Как получить покрытие кода от ручного тестирования на Android-приложении (студия Android и градация)

Я пробовал много предлагающего решения, например, https://groups.google.com/forum/#!searchin/jacoco/manual $ 20android% 7Csort: date/jacoco/vx0g_6TKY8Q/0Tg3fX84CAAJ.

Он генерируется coverage.exec, но размер файла был только несколько байт (конечно, Jacoco не удалось создать ни одного отчета от него.)

Вот что я пробовал: https://github.com/kindraywind/MyDummy

В приложении /build.gradle

apply plugin: 'jacoco' 
jacoco { 
toolVersion ="0.7.8+" //I did try "0.7.4+" as the suggest. 
} 

task jacocoTestReport(type: JacocoReport) { … } 

В jacoco-agent.properties

destfile=/storage/sdcard/coverage.exec

В приложение/SRC/главная/AndroidManifest.xml`

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

В MainActivity.java

protected void onStop() 
{ 
super.onStop(); 
if(BuildConfig.DEBUG) 
{ 
String TAG = "jacoco"; 
try { 
String covPath = Environment.getExternalStorageDirectory().getPath() +  "/coverage.exec"; 
File coverageFile = new File(covPath); 
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) { 
} 

} 

}

Эмулятор Nexus 5 API 19 (я стараюсь большинство версий.)

Журнал с устройства EMMA: runtime cov Данные тить объединены в [/storage/sdcard/coverage.exec] {в 8 мс}

В журнале после запуска ./gradlew jacocoTestReport Unable to read execution data file /Users/MyDummy/app/coverage.exec

Я использую OSX10.12.3, если это связанно.

Подводя итог, мне нужно знать (или любой рабочий пример), как получить покрытие кода в то время как:

  • Протестируйте приложение вручную.
  • В приложении для Android.
  • Который использует Gradle не Maven или Ant.
  • Android Studio не Eclipse.

Я не вижу выхода и действительно ценю помощь.

ответ

0

Я подробно описал, как получить покрытие кода во время ручного тестирования at my blog. После этого вы должны получить отчет о покрытии кода. Вы, кажется, направляетесь в правильном направлении, но, пожалуйста, внимательно прочитайте сообщение.

Описывается немного более совершенное и полное решение in another blog post. Он использует NanoHttpd для создания сервера REST на устройстве/эмуляторе.API предоставляет единую конечную точку, которая записывает файл отчета в качестве ответа. Кроме того, предоставляется пользовательский (гораздо более быстрый) отчет CSV-отчета.

Не стесняйтесь связаться со мной, если вы хотите обсудить GUI автоматизированного тестирования (связанные с Android) дальше :)

+1

В случае ссылки блога идти мертвым в будущем, было бы полезно, если бы вы предоставили краткое объяснение помочь будущим читателям с той же проблемой. Представьте свой ответ без ссылок и попробуйте добавить всю информацию, отсутствующую для успешного решения проблемы. – Adalee

Смежные вопросы