6
Komut satırından birim testleri çalıştırırken kaynak yükleme konusunda sorun yaşıyorum. IntelliJ'de gayet iyi çalışıyor.
kullanıyorum:
- com.android.tools.build:gradle:1.1.3
- org.robolectric: robolectric-gradle-eklenti: 1.0.1
- org.robolectric : robolectric: 2,4
I olan aşağıdaki proje yapısı (Çoklu modülü):
+---module1
| | build.gradle
| \---src
| +---main
| | | AndroidManifest.xml
| | |
| | +---res
| | | \---values
| | | strings.xml
| \---test
| \---java
| \---example
| | FooTest.java
+---module2
etc
Testim (basitleştirilmiş) şöyle görünür:
android.content.res.Resources$NotFoundException: unknown resource 2131361826
at org.robolectric.shadows.ShadowAssetManager.getAndResolve(ShadowAssetManager.java:311)
at org.robolectric.shadows.ShadowAssetManager.getResourceText(ShadowAssetManager.java:69)
at android.content.res.AssetManager.getResourceText(AssetManager.java)
at android.content.res.Resources.getText(Resources.java:235)
at org.robolectric.shadows.ShadowResources.getText(ShadowResources.java:363)
at android.content.res.Resources.getText(Resources.java)
at android.content.res.Resources.getString(Resources.java:325)
at org.robolectric.shadows.ShadowContext.getString(ShadowContext.java:41)
at org.robolectric.shadows.ShadowContextWrapper.getString(ShadowContextWrapper.java:96)
at android.content.Context.getString(Context.java)
Not:
@Config(emulateSdk = 18, reportSdk = 18, manifest = "./src/main/AndroidManifest.xml")
@RunWith(RobolectricTestRunner.class)
public class FooTest {
@Test
public void test() {
String result = Robolectric.application.getString(R.string.error_message);
assertThat(result, notNullValue());
}
}
Bu stacktrace olsun ben bir yanlış yapılandırma olduğunu bu nedenle olasıdır Gradle oldukça yeniyim yere. Proje yapısı sözleşmesini takip ederek kaynakları nerede bulacağımı belirtmem gerektiğini varsaydım. Bunları belirtmeden denedim ama hiçbir şansı olmayan:
android {
sourceSets {
main {
manifest.srcFile 'src/main/AndroidManifest.xml'
java.srcDirs = ['src/main/java']
res.srcDirs = ['src/main/res']
assets.srcDirs = ['src/main/assets']
}
}
}
Yapılandırma bildirinizi 'module1/src/main/AndroidManifest.xml' olarak değiştirmeyi deneyebilir misiniz? Sorununuz için düzeltilemiyor (şimdi AS'de başarısız oluyorsunuz) ama sadece hızlı bir şekilde kontrol ediniz. –
Merhaba, bunu denedim ve aldım: > Dosya '/ opt/buildagent/work/22b7e45eb23ab445/module1/module1 /src/main/AndroidManifest.xml 'özellik için belirtilen' manifest 'mevcut değil. – Alix
Yanlış tahmin. Bildiri dosyasından hiç bahsedilmediğini kaldırabilir misiniz? –