нелегальные аргументы - не удается найти манифест в robolectric

Я запускаю модульный тест Android и пытаюсь проверить возможность проверки разрешений во время выполнения в Android. Я подумал, что будет проще просто создать тестовый манифест в папке test (НЕ в папке androidTest). как это,

введите здесь описание изображения

Однако он генерирует исключения java.lang.IllegalArgumentException: failed to configure ..mysdk.myTest.myTest: couldn't find 'mysdk/src/test/AndroidManifest.xml'

Я гуглил это пару дней и не мог найти подходящего решения. Я также прочитал пару потоков в stackoverflow. Но ни один из них не работает для меня (установить $MODULE_DIR$, сбросить модульный тест в Edit Configuration... и т. д.)

Вот тестовый код, и я просто использую Android Studio без сборки проекта для запуска тестовых случаев. (он отлично работает для тестовых случаев, не связанных с манифестом)

@RunWith(RobolectricTestRunner.class)
@Config(constants = BuildConfig.class, manifest =
    "mysdk/src/test/AndroidManifest.xml")
public class myTest {
private Context context;

@Before
public void setUp() {
    context = RuntimeEnvironment.application;
}

@Test
public void myTest() throws JSONException {
    boolean hasWifiPermission context.checkCallingOrSelfPermission(Manifest.permission.INTERNET)
                == PackageManager.PERMISSION_GRANTED;
    assertTrue(hasWifiPermission);
}


java.lang.IllegalArgumentException: failed to configure 

mycompany.mysdk.myTest.mytest: couldn't find 'mysdk/src/test/AndroidManifest.xml'
    at org.robolectric.RobolectricTestRunner.getChildren(RobolectricTestRunner.java:256)
    at org.junit.runners.ParentRunner.getFilteredChildren(ParentRunner.java:426)
    at org.junit.runners.ParentRunner.getDescription(ParentRunner.java:351)
    at com.intellij.junit4.JUnit4IdeaTestRunner.getDescription(JUnit4IdeaTestRunner.java:78)
    at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:50)
    at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:51)
    at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
    at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.intellij.rt.execution.application.AppMainV2.main(AppMainV2.java:131)
Caused by: java.lang.IllegalArgumentException: couldn't find 'mysdk/src/test/AndroidManifest.xml'
    at org.robolectric.internal.DefaultManifestFactory.resolveFile(DefaultManifestFactory.java:58)
    at org.robolectric.internal.DefaultManifestFactory.identify(DefaultManifestFactory.java:32)
    at org.robolectric.RobolectricTestRunner.getAppManifest(RobolectricTestRunner.java:402)
    at org.robolectric.RobolectricTestRunner.getChildren(RobolectricTestRunner.java:243)
    ... 12 more

Я использую Android Studio 3.0.1 и Roboletric 3.5.1.


person IHC_Applroid    schedule 20.12.2017    source источник
comment
просто попробуйте manifest="AndroidManifest.xml" stackoverflow.com/questions/47456711/   -  person thinkpanda    schedule 23.12.2017
comment
Я бы удалил спецификацию манифеста. Я бы использовал последнюю версию Robolectric 3.6.1 и следил за страницей, как ее настроить.   -  person Eugen Martynov    schedule 28.12.2017
comment
@thinkpanda спасибо! спас мою жизнь!   -  person Karoly    schedule 13.02.2018