2013-08-17 12 views
25

Używam Androida Studio 0.2.4, ale zakładam, że to pytanie może dotyczyć w ogóle IntelliJ. Moje testy są pod kontrolą src/instrumentTest/java i wszystkie rozszerzają AndroidTestCase. Po uruchomieniu wszystkich testów (po kliknięciu prawym przyciskiem myszy na folderze źródłowym i kliknięciu przycisku "Uruchom ...") testy przebiegają bez zarzutu na emulatorze Androida jako testy Androida (jak widać w konfiguracjach Run/Debug).Jak uruchomić metodę testową lub klasę jako test Androida w Studio Android

Ale jeśli spróbuję uruchomić pojedynczą metodę testową lub testować klasę w ten sam sposób (kliknij prawym przyciskiem myszy na metodę i kliknij "Uruchom ..."), test jest uruchamiany jako normalny test JUnit nie na emulatorze, który oczywiście zawiedzie (ślad stosu poniżej). Nawet jeśli spróbuję utworzyć nową konfigurację Run, nie widzę możliwości stworzenia czegoś innego niż konfiguracja JUnit.

W IDE, jak uruchomić metodę testową lub klasę testową jako test Androida?

Exception in thread "main" java.lang.NoClassDefFoundError: junit/textui/ResultPrinter 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:188) 
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:113) 
Caused by: java.lang.ClassNotFoundException: junit.textui.ResultPrinter 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356) 
    ... 3 more 

Odpowiedz

36

Dla każdego, kto nadal śledzi, działa to w Android Studio 0.2.8. Są jednak trzy stany, o których musisz wiedzieć.

  1. Jeśli nigdy wcześniej nie uruchomić metodę testową lub klasy, nie będzie zapisana konfiguracja run. Kliknij prawym przyciskiem myszy metodę lub klasę i powinna pojawić się strzałka w prawo obok opcji Uruchom, wyświetlająca nazwę testu. Wybierz tę, która ma symbol Androida.

  2. Jeśli wcześniej przeprowadziłeś testową metodę lub klasę jako zwykły test JUnit, to Android Studio zapisze tę konfigurację, aw menu kontekstowym nie będzie żadnej prawej strzałki ani opcji w opcji Uruchom. W takim przypadku w menu Plik przejdź do Run-> Edit Configurations ..., znajdź swój test w sekcji JUnit i usuń go. Wtedy powinieneś być w stanie (1).

  3. Jeśli wcześniej korzystasz z metody testowej lub klasy jako testu Androida, to Android Studio zachowa tę konfigurację, aw menu kontekstowym nie będzie prawej strzałki ani opcji w menu Uruchom. Po prostu wybierz Uruchom powinien działać.

+2

a co z intellij IDEA? znalazłeś jakieś obejście? –

2

Czy poprawnie skonfigurowałeś kod testowy w Android Studio? Najnowszą konwencją Gradle w Android Studio jest wywołanie twojego katalogu testów "androidTest". Następnie w pliku build.gradle należy umieścić:

androidTest.setRoot('androidTest') 
    androidTest.java.srcDirs = ['androidTest/java'] 

Następnie można kliknąć prawym przyciskiem myszy każdą klasę testową i uruchomić ją.

EDYTOWANIE: Te instrukcje dotyczą wyłącznie testów espresso.

+1

Pomogło mi to w kotlinie, aby pliki testowe kotlin zostały rozpoznane 'androidTest.java.srcDirs + = 'src/androidTest/kotlin'' –

Powiązane problemy