8

Android の Ant ツールには Emma コード カバレッジが組み込まれていることは知っていますが、Emma のレポートはますます古くなり、他のカバレッジ レポートや Sonar に簡単に統合することさえできません。私が達成したいことは

  • 単体テストのコード カバレッジ (Robolectric ベース、Cobertura で既に完了)
  • 統合テストのコード カバレッジ (Robotium/エミュレータ ベース、現在は Emma と個別に実施)
  • 理想的には、コード カバレッジの結果をマージします (これは Cobertura でのみ可能な私見であり、すべてのテスト実行から生の *.ser ファイルが必要です)
  • Sonar への公開 (現在、ユニット テスト カバレッジでのみ行われています。私の知る限り、Sonar は 1 つのカバレッジ形式しか理解できません)

代替手段はありますか?

編集: sonar-devel に関するこの投稿は、おそらく Android コード カバレッジ サポートと Sonar サポートの現在の状態をまとめたものです。はぁ

4

3 に答える 3

6

質問で言及したのと同じ構成を含む github リポジトリをプッシュしました。

  • 標準の Android テスト + エマ コード カバレッジ
  • robolectric + cobertura コード カバレッジ (ちなみに、cobertura は robolectric と互換性がないと思っていました)

そしてソナーへのそれらの包含。一度に 1 つだけですが、それでも構成は興味深いベースです。

https://github.com/stephanenicolas/Quality-Tools-for-Android

同僚と私は、あなたと非常によく似た考え方でこの問題に取り組むことを念頭に置いています. Android プロジェクトで利用できるように、さまざまなテスト テクノロジをより適切に統合し、ソナーでも機能するようにレポートを作成したいと考えています。

私たちの取り組みに参加したい場合は、レポへの権利を喜んで提供し、あなたとの協力を開始します.

ステファン

- アップデート

2013 年 3 月以降、Robolectric テストと標準的な junit テストの両方に Jacoco オフライン インストルメンテーションを使用し、結果を Sonar に同時に表示するための統合構成も提案しています。

于 2013-01-13T01:32:29.080 に答える
2

Robolectric フレームワークを使用できます。Dalvik VM で実行される Android Junit テストを使用する代わりに、Java VM で JUnit テストを実行できるようになります。これにより、標準的なカバレッジ ツール (EclEmma、CodeCover、Cobertura など) を使用できるようになります。設定が簡単で、安定して動作します (Clover ツールからは言えません)。

于 2013-01-09T07:06:02.627 に答える
1

免責事項:私はアトラシアンです

はい。別の方法があります-AtlassianCloverツールを使用できます。https://confluence.atlassian.com/display/CLOVER/Clover-for-Androidから入手可能なClover-for-Androidのアルファ版があります

あなたは次のことを達成したいと書いています:

  • ユニットテストのコードカバレッジ-はい、Cloverは「Runas> Android JUnitTest」と「Runas>JUnitTest」をサポートしています-つまりエミュレーターを起動せずに(ただし、後者はCloverで説明されているようにわずかに異なるセットアップが必要になります) -Androidマニュアル)
  • 統合テストのコードカバレッジ-上記のように、「実行>AndroidJUnitテスト」
  • 理想的にはコードカバレッジ結果のマージ-はい、複数のテスト実行からのコードカバレッジ結果をマージできます。さらに、エミュレーターまたはデバイスでアプリケーションを実行し、手動テストを実行することもできます(原文のまま)。
  • Sonarへの公開-CloverSonarプラグインが利用可能ですが、Clover-for-Androidではテストしていません。おそらく、Eclipseでテストを実行し、次にXMLまたはHTMLレポートをエクスポートして(CloverのCoverage Explorerビューのボタン)、これらのファイルをSonarビルドにプッシュする必要があります。
于 2012-09-21T09:21:23.320 に答える