Firebase VDT не запускает тесты огурца (огурца) - PullRequest
4 голосов
/ 07 марта 2019

Я запускаю интеграционные тесты с VDT. Я создаю два APK, а затем отправляю их в соответствии с руководством, на которое есть ссылка: https://firebase.google.com/docs/test-lab/android/continuous для Bitrise.

Firebase успешно запускает мои тесты не на огурец, но он просто игнорирует тесты на огурец.

Когда я устанавливаю APK на свое устройство, я вижу, что все тесты запущены. Я проверил, и Runner в APK установлен на MultiDexCucumberJUnitRunner.

Чтобы узнать бегуна, который используется в apk androidTest, я сделал это:

  1. Установите APK, который я отправляю в Firebase
  2. Выполнить adb shell pm list instrumentation

Тогда я вижу строку: instrumentation:my.package.name.test/.MultiDexCucumberJUnitRunner (target=my.package.name)

Это MultiDexCucumberJUnitRunner, который я интегрировал в приложение: https://gist.github.com/dhoskins/98afa6976c87cb20328d42065c7292ee

Знаете ли вы, как я могу выяснить, почему тесты не работают? У вас тоже была эта проблема?

EDIT Теперь я знаю, что могу заставить его работать, отключив оркестратор. Есть ли способ запустить тест на огурец с помощью Orchestrator?

Когда Orchestrator включен, это результат тестов:

INSTRUMENTATION_STATUS: numtests = 1 INSTRUMENTATION_STATUS: stream = нет Найдено тестов: INSTRUMENTATION_STATUS: id = AndroidJUnitRunner INSTRUMENTATION_STATUS: тест = INSTRUMENTATION_STATUS: класс = нет тестов найдено INSTRUMENTATION_STATUS: текущий = 1 INSTRUMENTATION_STATUS_CODE: 1 INSTRUMENTATION_STATUS: numtests = 1 INSTRUMENTATION_STATUS: поток = Ошибка в тестах не найдена: java.lang.ClassNotFoundException: Неверный имя: тесты не найдены на java.lang.Class.classForName (собственный метод) в java.lang.Class.forName (Class.java:400) в android.support.test.internal.runner.TestLoader.doCreateRunner (TestLoader.java:72) в android.support.test.internal.runner.TestLoader.getRunnersFor (TestLoader.java:104) в android.support.test.internal.runner.TestRequestBuilder.build (TestRequestBuilder.java:789) в android.support.test.runner.AndroidJUnitRunner.buildRequest (AndroidJUnitRunner.java:539) в android.support.test.runner.AndroidJUnitRunner.onStart (AndroidJUnitRunner.java:382) в my.package.name..app4test.test.MultiDexCucumberJUnitRunner.onStart (MultiDexCucumberJUnitRunner.kt: 25) в android.app.Instrumentation $ InstrumentationThread.run (Instrumentation.java:1932)

1 Ответ

4 голосов
/ 13 марта 2019

Похоже, добавлена ​​поддержка Orchestrator для версии Android огурца 4.2.4 . Вы можете попробовать интегрировать CucumberAndroidJUnitRunner из библиотеки вместо MultiDexCucumberJUnitRunner из сущности.

Если ваш проект еще не AndroidX, замените androidx.test.runner.AndroidJUnitRunner на android.support.test.runner.AndroidJUnitRunner, они должны иметь ту же реализацию.

...