2015-02-26 13 views
7

2 modülüm var: A ve B.Android Gradle 1.1 - başka bir projenin testlerine bir test bağımlılığı eklenmesi

-bir bağımsız bir modüldür. Testleri her şey kendi kendine halledilir.
- B bağımlı bir modüldür. Onun testler A 'ın Test klasöründe belli bir dosyayı gerektiren (B bir deney dosyasında bir uzanmaktadır bir)

 

İşte

Ben ilgili kısımları olduğuna inandıkları vardır B 'ın build.gradle:

android { 
    ... 
    sourceSets { 
    test.java.srcDirs += "../A/src/test/java" 
    } 
} 

dependencies { 
    compile project(':A') 

    testCompile 'junit:junit:4.10' 
    testCompile 'org.robolectric:robolectric:2.4' 
    testCompile 'org.mockito:mockito-core:1.9.5' 
} 

bu teknik olarak buna ihtiyacım ne işe yararken - o kötü yan etkisi yoktur zaman ben ru N bir s testleri 'nin birim testleri, aynı zamanda B tüm çalıştırmak'. Bu durum böyle olmasaydı gerçekten isterdim.

 

I (Android Studio 1.1 ile birlikte) Android Gradle 1.1 kullanıyorum ve bu bana bazı sorunlara yol açıyor düşünüyorum. Bulabildiğim tüm çözümler denedi - maalesef bunların hiçbiri Android Gradle 1.1 başvurmak gibi görünüyor - örneğin:

Çıkarma sourceSetsB 'ın build.gradle ve ekleme (B için' ın bağımlılıkları gelen) hattı

testCompile project(':A').sourceSets.test.output 

yapı hata Could not find property 'test' on SourceSet container.

 

üretir 10

Bunu yanlış yoldan mı yapıyorum? Test dosyalarını modüllere dahil etmenin daha kolay/daha iyi bir yolu var mı? Gradle/Android Studio'ya oldukça yeni geldim, bu yüzden tamamen açık bir çözümü kaçırmam mümkün.

+0

A testi, B kaynaklarına ekleniyor => Çalışıyor Bir test, B testlerinin çalışmasına neden oluyor? Bu kafamda mantıklı değil, Bu hala durum mu? BTW, alternatif bir yöntem A'nın testlerini bir kavanoz olarak paketlemektir ve B'yi testCompile bağımlılığı olarak kullanır. – RaGe

cevap

0

Kontrol komutunu kullanarak ağaç tarafından tüm modülleri:

gradle projects 

Bu, tüm proje modüllerini listeler ve bir sağ bir şekilde alt projeleri yapılandırırken olmadığını görebilirsiniz. Ayrıca çalıştırmak komut:

gradle --gui 

Tüm modülleri için tüm görevleri listeler ve her zaman diğer bağımsız olarak örneğin bir modül çalıştırabilirsiniz

gradle A:tasks 
gradle A:test 
gradle B:test 

YA hem

gradle A:tasks B:test 

Not: Kök projesi ve B, C, D Alt modüller ama submodüller bunu belirtmek gerekiyorsa A belirtmek gerekmez.Bunu yaptığınızda:

gradle --gui 

Bunu nasıl çalıştırdığını görmek için herhangi bir görev üzerinde çift tıklamanız ve komut satırından manuel aynısını yapabilirsiniz. Umarım bu yardımcı olur