現在、私はAndroidでのGUI自動テストについて研究しています。何らかの理由で手動テストからコードカバレッジレポートを生成できるツールが必要です。 長い検索の後、私はJacoco
とEmma
が彼らのウェブサイト上で手作業のアプローチを述べていることがわかりました。 残念ながら、インターネットにはup-to-date-working example
はありません。アンドロイドアプリケーション(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
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である(私がしようとしたので アプリ/ srcに/メイン/ AndroidManifest.xml`
で
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
ほとんどのバージョン)
デバイスからのログ EMMA:runtime cov erageデータは、関連する場合、[/storage/sdcard/coverage.exec]
ログ{8ミリ秒}ラン./gradlew jacocoTestReport Unable to read execution data file /Users/MyDummy/app/coverage.exec
後、私はOSX10.12.3を使用しているにマージ。
- テストアプリ手動:
は、要約すると、私はしばらくの間、コードカバレッジを取得する方法を知っておく必要がある(または任意の実施例)。
- Androidアプリケーションの場合。
- MavenまたはAntではないGradleを使用しているのはどれですか。
- Android StudioはEclipseではありません。
私は方法がないと本当に助けに感謝します。
は、それが参考になります将来の読者が同じ問題を抱えるのを助ける。リンクなしであなたの答えを想像し、問題を解決するために欠落している情報をすべて追加してみてください。 – Adalee