2015-07-31 12 views
23

Próbuję skonfigurować moduł testowy urządzenia zgodnie z opisem w blogu na temat studia Android. Jednak wykonanie kompilacji gradle nie powiedzie się, że nie znaleziono "klasy konfiguracji z nazwą". Debugowanie to nazwa wartości docelowej, którą próbuje zbudować, ale nie rozumiem, co tu jest nie tak.Moduł testowy Androida (Gradle Plugin 1.3) nie działa: "nie znaleziono klas debugowania"

Oto plik gradacyjny mojego modułu testowego.

apply plugin: 'com.android.test' 

android { 
compileSdkVersion 22 
buildToolsVersion "22.0.1" 

targetProjectPath ':app' 
targetVariant 'debug' 
}  

To jest blogpost opisujący nową funkcję modułu testowego. http://android-developers.blogspot.com/2015/07/get-your-hands-on-android-studio-13.html

Używam Gradle wtyczki v1.3.0

+0

Używasz Gradle plugin 1.3.0? – EpicPandaForce

+0

Tak, używam go. Wspomniałem o tym w tytule, ale nie o samym wpisie. –

+0

Problem polega na tym, że używam smaków kompilacji, więc nie ma nic o nazwie "deubg". Jednak przy mojej pierwszej próbie nie mogłem naprawić problemu, wskazując targetVariant na moje smaki budowania. Zagłębię się w to jeszcze ... –

Odpowiedz

21

Byłem też ciekaw oddzielenie kodu aplikacji i kodu testowego i miałem ciężko to zrozumieć. Patrzę na ślad stosu i stwierdzam, że DependencyManager (linia 238) ma TODO, aby naprawić to w gradle.

1) Masz rację o budowie flavors.You wprowadzić poprawną wariant

targetVariant '<flavor>Debug' 

np

targetVariant 'flavor1Debug' 

2) Musisz również zmienić moduł build.gradle targetProjectPath. Dodaj następujący fragment:

android { 

    // ... 

    publishNonDefault true 

    // ... 

} 

który publikuje wszystkie warianty budować! Jest on domyślnie wyłączony z powodu pewnych ograniczeń gradle.

+0

'publishNotdefault true' to odpowiedź, którą dostałem również w społeczności narzędzi programistów Androida - https : //plus.google.com/+MariusBardan/posts/79MM5tPBFyp. To zadziałało dla mnie. –

+0

Czy jest jakikolwiek powód, aby nie używać wersji "release" jako docelowej wersji? –

+1

@AlexCrist _debug_ to domyślny ** nieminified ** typ kompilacji do testowania, ponieważ jego wykonanie zajmuje mniej czasu (redukuje cykle testowe). Ale oczywiście dobrze jest przetestować wersję _release_, zwłaszcza gdy ** zamazywanie/zaciemnianie ** lub ma jakąkolwiek inną konfigurację w bloku release. Więc _debug_ dla częstych testów i _release_ obok. –

Powiązane problemy