2

私はJava EE、Ant、Maven、単体テスト、モックなどの長年のJava開発者です。現在、gradleを使用してAndroidアプリを構築しており、それらの単体テストを検討しています。そして、それは私の髪を引き裂きました!

私の読書によると、アプリをテストするには、テストディレクトリ内のその中に別のアプリを作成する必要があります。しかし、この組み込みアプリがメインのアプリ クラスをどのように認識できるかはわかりません。異なるマニフェストと関係があるため、Googleがこれを思いついたと思います。理由はわかりません。

この組み込みアプリ システムを実行しなくても、テスト クラスをメイン クラスと共に APK に含め、インストルメンテーション宣言をマニフェストに追加し、デプロイしてテスト ランナーを実行することで、ユニット テストを実行することができました。しかし、アプリ クラスを使用してテスト クラスをコンパイルし、すべての依存関係を含めたくないので、それは実際にはオプションではなく、効果に関するドキュメントが見つからないため、マニフェストへの変更の効果についてはよくわかりません。 .

これはどれも、ビルドの Maven システムに従う gradle では理解されません。また、アンドロイドの方法は、埋め込まれたサブプロジェクト (テスト) がメインの親プロジェクトに依存しているように見えることに注意してください。これは、gradle と maven に完全に反するものです。

別のオプションは、テスト プロジェクトを分離して、完全にアプリ プロジェクトの外部にあるようです。しかし、実際には、maven と同様の規則を使用して、テスト リソースのマニフェストと共に、別のディレクトリにテストを配置したいと考えています。

ディレクトリ構造に似たより Maven に従って、単体テストを実行しているエミュレーターでテストを取得できた人はいますか?

4

2 に答える 2

2

Robotiumを試すことができます。より良いテストケースのための多くの機能を提供します。こちらでご覧いただけます。

于 2013-08-16T12:07:46.063 に答える
1

エミュレーターで単体テストを実行する必要がありますか?遅すぎませんか?私はrobolectric(http://pivotal.github.com/robolectric/)を使用しており、モックと同様に機能するシャドウオブジェクトを作成しています。私はprogaurd(http://proguard.sourceforge.net/)を使用して、リリースビルドのテストを取り除きます。

于 2011-05-19T20:53:23.547 に答える