2016-07-04 18 views
6

Uważam, że Android Studio uruchomi test przed wygenerowaniem podpisanego apk.Jak mogę uruchomić test przed wygenerowaniem podpisanego apk?

Ale AS nie zrobił tego dla mnie. To nie jest miłe przed pakowaniem mojego apka, muszę sam przeprowadzić testy.

Nie jestem pewien, czy zależy od lub w inny sposób może mi pomóc.Nie wiem, czy mój build.gradle ma błędy.

Niektóre odpowiedni kod w Gradle może tak:

defaultConfig { 
    applicationId "com.xx.xx" 
    versionCode getDefaultVersionCode() 
    minSdkVersion 19 
    targetSdkVersion 19 
} 
dependencies { 
    testCompile 'org.robolectric:robolectric:3.0' 
    testCompile 'junit:junit:4.12' 
} 

nie pisałem OpcjaTestowa.

Mój katalog jest tak (zawartość przed nimi jest nazwa pakietu):

enter image description here

Odpowiedz

2

nie jestem zaznajomiony z rozwojem Androida, ale myślę, że można osiągnąć swój zamiar z dodanie tego gdzieś w build.gradle:

sign.dependsOn test 

Gdzie znak jest podpisanie zadania apk (taką samą nazwę jak z Gradle zadań).

5

Aby uruchomić wszystkie dostępne testy, podczas budowania wydaniu sprawiają, że zadanie, które buduje uwalnianie (np assembleRelease) zależą od zadań testowych:

android { 
    // ... 
} 
afterEvaluate { 
    assembleRelease.dependsOn testReleaseUnitTest, connectedAndroidTest 
} 

Zamknięcie afterEvaluate wykonywany jest po dokonaniu oceny (gdy utworzono zadania android). W tej chwili zadania android mogą być określane jako zmienne.

Zamiast testReleaseUnitTest można po prostu użyć test, który uruchamia testy jednostkowe dla wszystkich wariantów.

Należy pamiętać, że domyślnie nie ma testów oprzyrządowania dla wersji release aplikacji (kompilacja z assembleRelease). Tak więc w powyższym przykładzie connectedAndroidTest uruchamia testy oprzyrządowania tylko dla wersji debug.

+0

Nazwa "test" jest zawsze "testowa" lub jest nazwana przeze mnie? ** assembleRelease.dependsOn ** ** test ** został uruchomiony, ale ** wygenerował podpisany plik **, który nie został zatrzymany? – user2545386

+1

Hmm, znalazłem kiedy piszę w ten sposób ** assembleFlavorRelease dependsOn test **, to zadziałało. Myślę, że każdy ** assembleFlavourRelease ** w zależności od testu nie jest dobrym pomysłem. Jak powinienem to zrobić? – user2545386

+0

bardzo ładne. Dziękuję Ci. – dit

Powiązane problemy