Как запустить тесты Android с помощью sbt?
Я разработал для своего приложения небольшой набор тестов на Android, написанный в Scala, который использует библиотеку Robotium. Набор для всех целей и задач является стандартным тестовым проектом Android JUnit и успешно запускается при запуске из Eclipse.
Я уже успешно создал и запустил основное приложение для Android с помощью sbt android-plugin. Основное приложение расположено в [ProjectDir]/src/main
. Я также смог успешно создать приложение для тестирования Android, которое находится в каталоге [ProjectDir]/tests/src/main
. Я проверил эмулятор, и тестовое приложение, похоже, было правильно установлено с помощью команды android-plugin tests/android:install-emulator
. Однако, когда я пытаюсь запустить тестовый проект через sbt tests/android:test-emulator
, я получаю:
...
Test results for InstrumentationTestRunner=
Time: 0.001
OK (0 tests)
Как я могу заставить sbt android-plugin распознавать, что проект содержит тесты JUnit и запускает их?
Ответы
Ответ 1
Соглашение об именах, используемое здесь, такое же, как и обычный JUnit, и поэтому вам нужно назвать тесты xxxTest.class. Им также необходимо расширить TestCase (AndroidTestCase, InstrumentationTestCase и т.д.).
Чтобы повторить, eclipse будет запускать команду, которая будет выглядеть так:
adb shell am instrument -w -e class com.android.foo.FooTest,com.android.foo.TooTest com.android.foo/android.test.InstrumentationTestRunner
Он добавит имя класса в команду, поэтому соглашение об именах может не применяться.
Если вы запустите с sbt, он запустит
adb shell am instrument -w com.android.foo/android.test.InstrumentationTestRunner
который найдет все классы под именем пакета приложения com.android.foo, который заканчивается с помощью someClassNameTest.