私は既にこの問題が以前に尋ねられたことを知っていましたが、この問題を解決できません。 jUnit、Robolectric、Gradleでテストをコンパイルして適用できます。アクティビティをテストしたり、リソースを取得しようとすると、問題またはエラーが発生します。Gradle Robolectric ResourcesテストでNotFoundExceptionが発生しました
android.content.res.Resources $ NotFoundException:不明なリソース
資源$ NotFoundException:いいえ、そのようなテーマ
PageActivity startPageActivity = Robolectric.buildActivity(PageActivity.class).create().get();
Context context = Robolectric.getShadowApplication().getApplicationContext();
ShadowContext shadowContext = shadowOf(context);
assertNotNull(" No App name String " ,shadowContext.getString(R.string.app_name));
そしてこのたび、私は同じ問題を持っていますプロジェクトの構造は次のとおりです。
.
├── build.gradle
├── settings.gradle
└── mainproject
├── build
│ ├── classes
│ │ └── debug
├── build.gradle
└── src
└── main
│ ├── AndroidManifest.xml
│ └── java
│ └── com...
│ └── resources
└── envDev
│ └── java
│ └── com...
│ └── resources
└── envQa
│ └── java
│ └── com...
│ └── resources
└── envLive
│ └── java
│ └── com...
│ └── resources
└── test
│ └── src
│ └── java
│ └── com...
│ └── rescources
└── testEnvDev
│ └── src
│ └── java
│ └── com...
│ └── rescources
└── testEnvQa
│ └── src
│ └── java
│ └── com...
│ └── rescources
└── testEnvLive
└── src
└── java
└── com...
└── rescources
これはソースセットですグラデーションで罰金:
sourceSets {
main {
java.srcDir file('src/main/java')
manifest.srcFile file('src/main/AndroidManifest.xml')
res.srcDir file('src/main/resources')
}
envDev {
java.srcDir file('src/envDev/java')
manifest.srcFile 'src/envDev/AndroidManifest.xml'
res.srcDir file('src/envDev/resources')
}
envQa {
java.srcDir file('src/envQa/java')
manifest.srcFile 'src/envQa/AndroidManifest.xml'
res.srcDir file('src/envQa/resources')
}
envLive {
java.srcDir file('src/envLive/java')
manifest.srcFile 'src/envLive/AndroidManifest.xml'
res.srcDir file('src/envLive/resources')
}
instrumentTest {
java.srcDir file('src/test/java')
res.srcDir file('src/test/resources')
}
instrumentTestEnvDev {
java.srcDir file('src/testEnvDev/java')
res.srcDir file('src/testEnvDev/resources')
}
instrumentTestEnvQa {
java.srcDir file('src/testEnvQa/java')
res.srcDir file('src/testEnvQa/resources')
}
instrumentTestEnvLive {
java.srcDir file('src/testEnvLive/java')
res.srcDir file('src/testEnvLive/resources')
}
}
誰かがこの問題に直面する可能性がありますか?
おかげ
robolectricテストを実行するためにいくつかのgradleプラグインを使用していますか? robolectricのどのバージョンを使用していますか?すべてのソースセットを指定する必要はありません。リソースフォルダの名前をresに変更し、製品のフレーバーを使用します。 –
はい、Gradle Android Test Plugin 0.9.1とRobolectric 2.1を使用しています。私は再び資源名として "res"を再度適用するつもりです。私はすでにそれをやったのですが、うまくいきませんでした。ありがとう。 –
あなたはandroid gradleプラグインを使用していますか? –