2015-11-17 21 views
6

Android projem için entegrasyon testi env öğesini eklemek için this eğitimcisini takip ediyorum. Ben src/integrationTest/java ve src/integrationTest/resources dizininin yaratılması ve daha sonra benim build.gradle bu eklemiş:Android Tabaka tabanlı projedeki entegrasyon testlerini ayarlama

sourceSets { 
    integrationTest { 
     java { 
      compileClasspath += main.output + test.output 
      runtimeClasspath += main.output + test.output 
      srcDir file('src/integrationTest/java') 
     } 
     resources.srcDir file('src/integrationTest/resources') 
    } 
} 

Ama Gradle dosyaları senkronize zaman bu hatayı alıyorum:

Error:(134, 0) No such property: main for class: org.gradle.api.internal.file.DefaultSourceDirectorySet Possible solutions: name

ne demektir? Bunu nasıl çözebilirim?

Teşekkür sırasıyla

DÜZENLEME

Sadece android.sourceSets.main.output ile denedim ve android.sourceSets.test.output yerine main.output ve test.output:

Error:(136, 0) Could not find property 'output' on source set main.

:

sourceSets { 
    integrationTest { 
     java { 
      compileClasspath += android.sourceSets.main.output + android.sourceSets.test.output 
      runtimeClasspath += android.sourceSets.main.output + android.sourceSets.test.output 
      srcDir file('src/integrationTest/java') 
     } 
     resources.srcDir file('src/integrationTest/resources') 
    } 
} 

Ve şimdi bu hatayı alıyorum

cevap

4

Çözüldü! Aslında, bu satırların kaynak kümesi yapılandırmasında olması gerekmez, ancak entegrasyon testlerini çalıştıran görevde.

sourceSets { 
     integrationTest { 
      java.srcDir file('src/integrationTest/java') 
      resources.srcDir file('src/integrationTest/resources') 
     } 
    } 

    configurations { 
     integrationTestCompile.extendsFrom testCompile 
    } 

    task integrationTest(type: Test) { 
     testClassesDir = sourceSets.integrationTest.output.classesDir 
     classpath = sourceSets.integrationTest.runtimeClasspath 
    } 
+0

kullanma 'integrationTest (grup: 'doğrulama' yazın: Test)' diğer görevler ile aynı grupta görevi koyar Şimdi, benim build.gradle benziyor. – ThomasW

+0

Bu çözüm benim için temel sorunu çözüyor, ancak Android Studio 1.5.2 kullanıyorum ve entegrasyon eksik görünüyor. Android Studio, kodu doğru şekilde renklendirmez ve derleme hatalarını satır içi göstermez. (Hatanın nerede olduğunu görmek için kodu derlemeniz gerekir.) – ThomasW

+0

Bunu kullanmayı denediğimde, uygulama sınıflarının test sınıfları için geçerli olmadığını buluyorum. Bunu işe almak için yaptığın bir şey var mı? – ThomasW

İlgili konular