こんにちは、androidTestマニフェストファイルでアプリケーションを書き直すと、動作しません。テスト中のアクティビティにブレークポイントからgetApplication(と呼ばれる実際にはAndroidTestはテストアプリケーションを使用していません
<application
android:name=".app.Application"
android:allowBackup="true"
android:hardwareAccelerated="true"
android:icon="@drawable/icon"
android:label="@string/app_name"
android:largeHeap="true"
android:theme="@style/Theme">
...
</application>
私はそれをデバッグ、および):main
フォルダから
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="ru.app"
android:installLocation="auto">
<application
tools:replace="android:name"
android:name=".app.ApplicationAndroidTest" />
</manifest>
これは、元のAndroidManifest.xml
の一部である:これは私のandroidTest
フォルダ内のAndroidManifest.xml
ファイルですApplicationAndroidTest
インスタンスの代わりに.app.Application
を返します。
androidTestのアンドロイドマニフェストファイルが無視される理由はありますか?
public class UiTestsRunner extends AndroidJUnitRunner {
@Override
@NonNull
public Application newApplication(@NonNull ClassLoader cl, @NonNull String className, @NonNull Context context)
throws InstantiationException, IllegalAccessException, ClassNotFoundException {
return Instrumentation.newApplication(ApplicationAndroidTest.class, context);
}
}
それは私のために[OK]縫い目:私は、カスタムのテストランナークラスを使用し、回避策として
私はこのアプローチを試しましたが、androidTestで定義されたマニフェスト値が最終的なマニフェストにマージされていませんでした(おそらくこれはうまく動作していましたが、もう見えません)。代わりにテストマニフェストで 'uiTest'フレーバを作成することもできますが、代わりにカスタムAndroidJUnitRunnerを作成することをおすすめします。 – TheIT