2017-02-14 6 views
0

現在、私はAndroidでのGUI自動テストについて研究しています。何らかの理由で手動テストからコードカバレッジレポートを生成できるツールが必要です。 長い検索の後、私はJacocoEmmaが彼らのウェブサイト上で手作業のアプローチを述べていることがわかりました。 残念ながら、インターネットには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.execMainActivity.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ではありません。

私は方法がないと本当に助けに感謝します。

答えて

0

マニュアルテスト中にコードカバレッジを取得する方法に関する詳細なハウツーガイドを提供しましたat my blog。それに続いて、コードカバレッジレポートを入手する必要があります。あなたは正しい方向に向かっているようですが、投稿を徹底的に読んでください。

少し高度で完全な解決策が記載されていますin another blog postNanoHttpdを使用して、デバイス/エミュレータでRESTサーバーを作成します。APIは、レポートファイルを応答として書き込む単一のエンドポイントを提供します。さらに、カスタム(はるかに高速)のCSVレポートライターが用意されています。あなたは(アンドロイド関連)GUI自動テストを議論したい場合は

さらに私に連絡すること自由に感じ:)あなたに簡単な説明を提供する場合は、ブログのリンクは、将来的に死んで行く場合

+1

は、それが参考になります将来の読者が同じ問題を抱えるのを助ける。リンクなしであなたの答えを想像し、問題を解決するために欠落している情報をすべて追加してみてください。 – Adalee

関連する問題