2017-01-25 37 views
5

Mamy 2 smaki produktów w naszej aplikacji, a jeden smak ma klasę (FlavorSpecificClass), z czego druga nie. Mamy test jogi dla FlavorSpecificClass w folderze src/test, który nie będzie kompilowany, gdy będziemy w naszym głównym wariancie, ponieważ klasa nie istnieje w tym wariancie.Jak przeprowadzić test jednostkowy (junit) Android Flavor/Variant - klasa nie istnieje

Nie mogę znaleźć sposobu na oddzielne testy jednostkowe dla każdego wariantu, a kod nie zostanie skompilowany w naszym podstawowym wariancie, chyba że skomentuję odniesienia do FlavorSpecificClass. Jak mogę to obejść?

Odpowiedz

3

Zakładając, że używasz gradle.

Dlatego potrzebny jest inny katalog, który spoczywa w tym samym miejscu, co katalog testowy. Nazwij katalog jako "test [BuildVariant]" i uzyskaj testy dla tego wariantu kompilacji wewnątrz tego katalogu.

Załóżmy, że mają wbudowane wariantowej debug, Wasza struktura katalogów będzie wyglądać mniej więcej tak, jeśli chcesz przetestować klasy, które są tylko w debugowania wariantu

-debug/java/... 
-main/java/... 
-test/java/[your tests] 
-testDebug/java/[your tests for build variant debug] 
+0

Tak użyciem Gradle. Próbowałem tego i działa tylko uruchomić testy w folderze testDebug, gdy wybrany jest wariant debugowania, jednak problem z głównym wariantem nie kompiluje się z powodu klasy, która istnieje tylko w debugowaniu. Klasa jest wymieniona tylko w testach w folderze testDebug, jednak główny wariant nadal nie będzie kompilowany i uruchamiany. – DDM

+0

To oznacza, że ​​twój główny wariant chce, aby ta klasa tam była. Może być konieczne dodanie tej klasy we wszystkich wariantach. Inne warianty mogą mieć metody bez opcji. –

+1

Zorientowaliśmy to. Kiedy utworzyłem folder testDebug, następnie przystąpiłem do tworzenia folderu java, wybierając Nowy -> Folder -> Folder Java. To automatycznie dodało "src/testDebug/java" do mojego głównego zestawu źródeł w build.gradle. Pracowało się tylko nad utworzeniem folderu java za pomocą polecenia Nowy -> Katalog, a plik build.gradle nigdy nie jest modyfikowany. – DDM