Как я могу запустить тесты Android с sbt? - PullRequest
10 голосов
/ 26 ноября 2011

Я разработал для своего приложения небольшой набор тестов Android, написанный на Scala, в котором используется библиотека Robotium.Этот пакет, по сути, является стандартным тестовым проектом Android JUnit и успешно запускается при запуске из Eclipse.

Я уже успешно собрал и запустил свое основное приложение Android с помощью sbt android-plugin.Основное приложение находится в [ProjectDir]/src/main.Я также смог успешно собрать тестовое приложение для Android , которое находится в каталоге [ProjectDir]/tests/src/main.Я проверил эмулятор, и тестовое приложение, похоже, было правильно установлено с помощью команды tests/android:install-emulator android-plugin.Тем не менее, когда я пытаюсь запустить тестовый проект через sbt tests/android:test-emulator, я получаю:

...
Test results for InstrumentationTestRunner=
Time: 0.001

OK (0 tests)

Как я могу заставить sbt android-plugin распознать, что проект содержит тесты JUnit, и запустить их?

1 Ответ

1 голос
/ 30 января 2012

Используемое здесь соглашение об именах такое же, как и в обычном 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.

...