私はAndroidアプリケーションのコンポーネントのテストを書いています。このコンポーネントはアクティビティを使用していくつかのレポートを作成します。だからコンポーネント(醜いアーキテクチャ)をテストするためのアクティビティが必要で、テストプロジェクト内でダミーアクティビティを作成し、ActivityInstrumentationTestCase2<TestActivity>
から継承したテストを作成するのは簡単だと思っていましたが、何らかの理由で常にjava.lang.RuntimeException: Unable to resolve activity for: Intent { act=android.intent.action.MAIN flg=0x10000000 cmp=com.xxx/.Testctivity }
例外が発生します。Androidテストプロジェクト内でアクティビティを定義してテストを実行することはできますか?
マニフェストファイルにテストアクティビティが追加され、パッケージが正しく設定されているようです。
私は運がないcom.xxx(アプリケーションのパッケージ)とcom.xxx.testパッケージの両方に入れようとしました。しかし、私がTestActivityをターゲットアプリケーションに移動すると、すべて正常に動作します。だから私はテストプロジェクトと私のアプリケーションの違いは何かと不思議に思って、テストプロジェクトの中で活動することさえ可能です。
targetPackageをselfに変更すると、InstrumentationTestRunner.onCreateでNoSuchMethodExceptionで失敗し始めます – basin
私はこの方法に問題がありました。私は、/ manifest/@パッケージが/ manifest/instrumentation/@ android:targetPackageと同じであれば、テストはテスト対象のアプリケーションを効果的に置き換え、そのクラスを参照することが不可能になると思います。私はClassNotFoundExceptionsを取得していました。 –
私は、このアプローチで、androidTestディレクトリにAndroidManifest.xmlを追加して動作させました。しかし、Android Studioの新しいバージョンでは、2.3.1の時点で、 ''要素は必要ありません。 –