Исключение Espresso Perform происходит только в CI

Я использую Bitrise для запуска некоторых тестов пользовательского интерфейса Android эспрессо, но я не могу найти решение для этого исключения выполнения:

android.support.test.espresso.PerformException: Error performing 'single click' on view 'with id: com.selfcarecatalyst.healthstorylines.adda:id/male'.
    at android.support.test.espresso.PerformException$Builder.build(PerformException.java:83)

Я тестирую страницу регистрации с несколькими полями. Если я пропущу нажатие на одно поле, я получу ту же ошибку при следующем нажатии на эту форму. Соответствующий код:

public void clickMale_onInfoPage(){

    onView(withId(R.id.male)).perform(click());
}
public void setFirstName_onInfoPage(String name){
    onView(withId(R.id.first_name)).perform(typeText(name));
    closeSoftKeyboard();
}

Сначала вызывается setName, и я добавил softclosekeyboard, думая, что это решит проблему, но это не так :(

Это выполняется через CI, и извините, но я немного новичок и не знаю, как получить лучшее сообщение об ошибке/трассировку стека. Любая помощь приветствуется!


person 1ak31sha    schedule 14.04.2016    source источник
comment
Я все еще не могу заставить его работать, но я опубликую, как это сделать, как только я заставлю его работать. Первое, что вам нужно сделать, это убедиться, что ваш тест работает на вашем ноутбуке. Затем в Bitrise добавьте create android emulator и start android emulator из стека. после этого вы должны добавить скрипт, чтобы переместить apk-ы в эмулятор и запустить Espresso. вы можете следить за моим прогрессом на странице stackoverflow.com/q/36753486/513413.   -  person Hesam    schedule 21.04.2016
comment
конечно проверю спасибо! мой тест работает локально, проблемы возникают только в CI, и его сложно отлаживать   -  person 1ak31sha    schedule 22.04.2016


Ответы (1)


Вы также должны попытаться вызвать closeSoftKeyboard() перед выполнением клика.

person jordifierro    schedule 25.04.2016
comment
Прямо перед выполнением клика? public void clickMale_onInfoPage(){ closeSoftKeyboard(); onView(withId(R.id.male)).perform(click()); } - person jordifierro; 25.04.2016