私はJava EE、Ant、Maven、単体テスト、モックなどの長年のJava開発者です。現在、gradleを使用してAndroidアプリを構築しており、それらの単体テストを検討しています。そして、それは私の髪を引き裂きました!
私の読書によると、アプリをテストするには、テストディレクトリ内のその中に別のアプリを作成する必要があります。しかし、この組み込みアプリがメインのアプリ クラスをどのように認識できるかはわかりません。異なるマニフェストと関係があるため、Googleがこれを思いついたと思います。理由はわかりません。
この組み込みアプリ システムを実行しなくても、テスト クラスをメイン クラスと共に APK に含め、インストルメンテーション宣言をマニフェストに追加し、デプロイしてテスト ランナーを実行することで、ユニット テストを実行することができました。しかし、アプリ クラスを使用してテスト クラスをコンパイルし、すべての依存関係を含めたくないので、それは実際にはオプションではなく、効果に関するドキュメントが見つからないため、マニフェストへの変更の効果についてはよくわかりません。 .
これはどれも、ビルドの Maven システムに従う gradle では理解されません。また、アンドロイドの方法は、埋め込まれたサブプロジェクト (テスト) がメインの親プロジェクトに依存しているように見えることに注意してください。これは、gradle と maven に完全に反するものです。
別のオプションは、テスト プロジェクトを分離して、完全にアプリ プロジェクトの外部にあるようです。しかし、実際には、maven と同様の規則を使用して、テスト リソースのマニフェストと共に、別のディレクトリにテストを配置したいと考えています。
ディレクトリ構造に似たより Maven に従って、単体テストを実行しているエミュレーターでテストを取得できた人はいますか?