2016-06-24 4 views
2

Я получаю эту ошибку, когда я создаю деятельность с Robolectric:Robolectric "разрешение INTERNET требуется"

java.lang.IllegalArgumentException: INTERNET permission is required.

Это то, что я делаю:

@Config(constants = BuildConfig.class, 
    sdk = TestConfig.MIN_SDK_UNIT_TESTS, 
    manifest = "src/main/AndroidManifest.xml") 
@RunWith(RobolectricGradleTestRunner.class) 
public class ATest { 
    @Test public void testTrackDoNotAskMeAgainSelected() throws Exception { 
    final AnActivity activity = Robolectric.buildActivity(AnActivity.class).create().get(); 
} 

UPDATE 1: Наша текущая установка, У нас есть это проявление:

app/src/androidTest/AndroidManifest.xml 
app/src/debug/AndroidManifest.xml 
app/src/main/AndroidManifest.xml 
app/src/test/AndroidManifest.xml 

Я обнаружил, что debug выполняется вместо test, поэтому разрешение в app/src/test/AndroidManifest.xml игнорируется.

+0

Зачем вам нужно проявлять себя в 'Config'? Если нет причин, удалите его. Я думаю, проблема в том, что Robolectric не использует ваш AndroidManifest –

ответ

0

добавить это в манифесте:

<uses-permission android:name="android.permission.INTERNET" />

+0

У меня есть два файла манифеста, здесь: 'app/src/test/AndroidManifest.xml' и здесь:' app/src/main/AndroidManifest.xml', тот Я добавляю в '@ Config' имеет разрешение, я думал, что оба были объединены. – nebiros

+0

Добавил ли разрешение на тестовый манифест? Что вы используете в тестовом манифесте/почему вы не можете просто использовать главный? – colabug

+0

@colabug, потому что мы используем Dagger2 для ввода различных материалов при тестировании, поэтому у нас есть 'app/src/test/AndroidManifest.xml' с этим:' ' – nebiros

0

Пожалуйста, проверьте, чтобы использовать AndroidManifest в debugTest ароматизатора (папку) для этого случая.