2011-11-26 19 views
10

Opracowałem dla mojej aplikacji mały pakiet testów Androida napisanych w Scali, który używa biblioteki Robotium. Ten pakiet jest dla wszystkich celów i celów standardowym projektem testowym Android JUnit i działa poprawnie, jeśli został uruchomiony z Eclipse.Jak mogę uruchomić testy Androida z sbt?

Udało mi się już zbudować i uruchomić moją główną aplikację na Androida z wtyczką Android sbt. Główna aplikacja znajduje się w [ProjectDir]/src/main. Udało mi się również pomyślnie build my Android test application, który znajduje się w katalogu [ProjectDir]/tests/src/main. Sprawdziłem emulator i wygląda na to, że aplikacja testowa została poprawnie zainstalowana za pomocą polecenia tests/android:install-emulator android-plugin. Jednak, gdy próbuję uruchomić projekt testowy poprzez sbt tests/android:test-emulator, otrzymuję:

... 
Test results for InstrumentationTestRunner= 
Time: 0.001 

OK (0 tests) 

Jak mogę uzyskać SBT android-plugin do uznania, że ​​projekt zawiera testy JUnit i uruchomić je?

Odpowiedz

1

Zastosowana tu konwencja nazewnictwa jest taka sama, jak normalna JUnit i jako taka należy wymienić testy xxxTest.class. Muszą także rozszerzyć TestCase (AndroidTestCase, InstrumentationTestCase itp.).

Powtórzmy, zaćmienie będzie uruchomić polecenie, które będzie wyglądać następująco:

adb shell am instrument -w -e class com.android.foo.FooTest,com.android.foo.TooTest com.android.foo/android.test.InstrumentationTestRunner 

Będzie dołączyć nazwy klas do polecenia tak konwencji nazewnictwa może nie mieć zastosowania.

Jeśli prowadzisz z SBT, to będzie działać

adb shell am instrument -w com.android.foo/android.test.InstrumentationTestRunner 

który znajdzie wszystkie zajęcia pod nazwą pakietu w com.android.foo aplikacji, która kończy z someClassNameTest.

+0

Więc mówisz, że to działa dla ciebie? Są to testy, które działają niezmiennie w niezmienionym stanie w testowym torze testowym Junit Android firmy Eclipse. Nie jestem świadomy konwencji nazewnictwa klas, ale jestem świadomy konwencji nazewnictwa metod - że nazwy metod muszą być poprzedzone słowem "test". Moje testy rozszerzają niestandardową klasę 'TestFixture', która rozszerza' ActivityInstrumentationTestCase2'. –

+0

Czy wypróbowałeś FixtureTest – charroch

Powiązane problemy