Для тестирования мобильного приложения в UiAutomator я создала несколько автономных тестов. Каждый тест - это отдельный класс.
Автономны тесты тем, что каждый тест начинается с выхода в список всех приложений, поиска нужного приложения, логина и завершается логаутом.
cd "C:\Projects\Mobile\AndroidTestProject"
ant build && cd "C:\Program Files\Android\android-sdk\platform-tools" && adb push C:\Projects\Mobile\AndroidTestProject\bin\AccountCheckTest.jar /data/local/tmp/ && adb shell uiautomator runtest AccountCheckTest.jar -c AccountCheckTest
cd "C:\Projects\Mobile\AndroidTestProject"
ant build && cd "C:\Program Files\Android\android-sdk\platform-tools" && adb push C:\Projects\Mobile\AndroidTestProject\bin\CardsCheckTest.jar /data/local/tmp/ && adb shell uiautomator runtest CardsCheckTest.jar -c CardsCheckTest
Pause
В данном случае запускается первый тест, но даже в случае успешного прохождения второй тест не запускается. Вообще реально ли в принципе при такой системе создавать тест-сьюты, или все же надо все тесты помещать в один класс (очень не хочется) и пробовать приведенный в stackoverflow вариант?
Второй вариант, сделайте класс который запускает все ваши классы по очереди
Process process = Runtime.getRuntime().exec(“adb shell uiautomator runtest AccountCheckTest.jar -c AccountCheckTest”);
А можно пример, пожалуйста? Если у меня несколько классов, как их в один жар-файл сделать?
Я с антом начала работать только для мобильного тестирования и пока могу лишь точно следовать инструкциям, а по ним для каждого класса делается отдельный билд и потом созданный жар-файл пушится на эмулятор…
То что для каждого класса делается отдельный билд - это глупости. Когда вы запускаете ант билд - Вы создаете жар файл в котором находятся все классы проекта. После этого жар файл пушится на девайс и любой класс запускается из него коммандой
adb shell uiautomator runtest AccountCheckTest.jar -c Class1
adb shell uiautomator runtest AccountCheckTest.jar -c Class2
и так далее
Заработало, у меня правда надо все команды в батнике указывать через “&&” иначе тест останавливается.
При этом если тесты идут тест-сьютом, то в 90% случаев как минимум один из тестов завершается ошибкой, хотя если прогонять каждый тест по отдельности, то все проходит отлично.