Модульное тестирование Android с помощью Robolectric выдает ошибку AndroidManifest.xml не найден или не является файлом

Я пытаюсь использовать Robolectric для запуска тестового примера в приложении в Eclipse, как описано в этом блоге, но когда я запускаю тест JUnit, я получаю следующую ошибку

java.lang.RuntimeException: java.io.FileNotFoundException: C:\Users\abc\workspace\SumTestCases\AndroidManifest.xml not found or not a file; it should point to your project's AndroidManifest.xml
    at com.xtremelabs.robolectric.RobolectricTestRunner.createResourceLoader(RobolectricTestRunner.java:269)
    at com.xtremelabs.robolectric.RobolectricTestRunner.setupApplicationState(RobolectricTestRunner.java:229)
    at com.xtremelabs.robolectric.RobolectricTestRunner.internalBeforeTest(RobolectricTestRunner.java:177)
    at com.xtremelabs.robolectric.RobolectricTestRunner.methodBlock(RobolectricTestRunner.java:157)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: java.io.FileNotFoundException: C:\Users\abc\workspace\SumTestCases\AndroidManifest.xml not found or not a file; it should point to your project's AndroidManifest.xml
    at com.xtremelabs.robolectric.RobolectricTestRunner.createResourceLoader(RobolectricTestRunner.java:256)
    ... 17 more

Где я ошибаюсь?


person Gaurav Agarwal    schedule 12.09.2012    source источник


Ответы (1)


У вас есть два варианта:

  1. Вы должны запустить JUnit в папке, где находится AndroidManifest.xml.
  2. Вы можете расширить RobolectricTestRunner и вызвать родительский конструктор с путем к AndroidManifest.xml
person Eugen Martynov    schedule 15.09.2012
comment
Срок действия ссылки на второе решение истек - person wasyl; 06.07.2015
comment
Вы все еще используете Eclipse? - person Eugen Martynov; 06.07.2015
comment
Нет, но я столкнулся с той же проблемой в Android Studio. - person wasyl; 06.07.2015
comment
Найдите аналогичную проблему для AS. Вы должны правильно указать рабочую папку для модульных тестов - person Eugen Martynov; 06.07.2015
comment
Спасибо за минус. Вы проверили, что ответ был дан для Eclipse и почти три года назад? - person Eugen Martynov; 07.07.2015