2016-11-17 7 views
0

Я использую Espresso запустить андроид тест UI, после того, как в том числе все необходимые зависимости и создать необходимый тест класса, при запуске он дает мне ошибку:не может запустить тест эспрессо

java.lang.Exception: Custom runner class AndroidJUnit4 should have a public constructor with signature AndroidJUnit4(Class testClass) 

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

мой тестовый класс:

@RunWith(AndroidJUnit4.class) 
public class CreateTest { 

    @Rule 
    public ActivityTestRule mainActivityTest = new ActivityTestRule<>(MainActivity.class); 

    @Before 
    public void setUp() throws Exception { 
     Context context = InstrumentationRegistry.getContext(); 
    } 

    @Test 
    public void clickAdd(){ 
     Espresso.onView(withId(R.id.button)) 
       .perform(click()); 
     intended(hasComponent(new ComponentName(getTargetContext(), SecondActivity.class))); 
    } 

} 

зависимостей:

compile 'junit:junit:4.12' 

androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 
    exclude group: 'com.android.support', module: 'support-annotations' 
}) 
androidTestCompile ('com.android.support.test:runner:0.5', { 
    exclude group: 'com.android.support', module: 'support-annotations' 
}) 
androidTestCompile ('com.android.support.test:rules:0.5', { 
    exclude group: 'com.android.support', module: 'support-annotations' 
}) 
compile('com.android.support.test.espresso:espresso-intents:2.2.1', { 
    exclude group: 'com.android.support', module: 'support-annotations' 
}) 

пс Я так готов к использованию другого тестирования API, если есть один в наличии, но я искал и ничего не нашел.

+1

'@RunWith (JUnit4.class)' вместо '@RunWith (AndroidJUnit4.class)' – denys

+0

это дает мне 'java.lang.IllegalStateException: никаких инструментов регистрации не зарегистрировано! Должен работать под регистрирующим прибором. «Когда делаете это, какое-либо представление о типе этой ошибки? !! –

+0

вы можете попробовать google search ?! Есть много потоков с той же проблемой. – denys

ответ

0

Вы объявили прибор в файле AndroidManifest.xml?

<instrumentation 
    android:name="android.support.test.runner.AndroidJUnitRunner" 
    android:targetPackage="com.your.packageundertest" /> 
+0

Я добавил его, но также получил ту же ошибку в UnRegistered Instrumentation –

-1

Вы добавили свой инструментальный бегуна build.gradle файл, как указано в инструкции, установленных here?