2015-08-31 20 views
7

Robolectric'i ünite test amaçlı kullanma projem var. Bu proje Robolectric 3.0 kullanıyor ve Virtual Machine seçeneklerinde -ea ve -noverify seçeneklerini eklemeniz gerekiyor.Android'de jvm seçenekleri gradyan testi çalıştırıldığında

Android Studio'da, Run > Edit Configurations...'da yeni JUnit yapılandırması oluşturdum ve VM Options'u -ea -noverify olarak ayarlayın. Bu şekilde birim testimi yürütmeyi başarıyorum. Bu, benim yapılandırmak hakkında resimdir komut satırı ile Here

Ancak, sürekli dağıtım için, ben koşmak gerek birim testini görmek. Bu yüzden birim testini çalıştırmak için ./gradlew test kullanıyorum. Ayrıca org.gradle.jvmargs=-ea -noverify dosyasını gradle.properties dosyasına ekliyorum. Maalesef işe yaramıyor. Birim testi çalıştırabilirim ama java.lang.VerifyError aldım ve gradle.properties'un yüklenmediğini düşünüyorum.

Yani, benim sorum, nasıl gradle.properties yüklenmesi için ya sen benim vm seçenekleri sorunu çözmek için herhangi bir yol biliyor musunuz?

cevap

7

Bence en

tasks.whenTaskAdded { theTask -> 
    def taskName = theTask.name.toString() 
    if ("testDevDebug".toString().equals(taskName)) { 
     theTask.jvmArgs('-ea', '-noverify') 
    } 
} 

DevDebug benim yapı varyantı olan bu sorunu çözmek için build.gradle Uygulamaya giden bu bloğu ekleyebilir bulundu.

+0

bu son Android Studio 2.3.3 –

0

Belki bu

./gradlew -Dorg.gradle.jvmargs="-ea -noverify" test 
+0

Daha önce denedim ama yine de java.lang.verifyError. –

16

Zaten cevaplanır ama bu daha kolay bir çözüm olabilir: android kapatılması da uygulama modüllerin build.gradle dosyasında

, bu ekleyin.

android { 
    .... 

    testOptions { 
    unitTests.all { 
     jvmArgs '-noverify' 
    } 
    } 
} 
+1

üzerinde çalışır. Bu çok daha temiz. "gradle way" –

+3

Android Studio 2.3 ile çalışma yapan herhangi birinin deneyimi oldu mu? Halen bununla birlikte test kazası görmeye devam ediyorum. –

+0

bu, 2.3.3 üzerinde çalışmıyor. kabul edilen cevap harika çalışıyor –