2016-04-01 10 views
1

değiştirildi ederken bu olsun her zaman benim android app belli lezzet için bir Enstrümantasyon Testi çalıştırmak ve deneyin Keşke "elle" ile build.gradle içinde packagename değiştirmek zorunda belli productFlavor içinde:: -:</p> <pre><code>Test running failed: Unable to find instrumentation info for: ComponentInfo{<packackename>/android.support.test.runner.AndroidJUnitRunner} Empty test suite. </code></pre> <p>bu gerçekleşir ComponentInfo {} ProductFlavor için paketadı elle

applicationVariants.all { variant -> 
    def flavorName = variant.getVariantData().getVariantConfiguration().getFlavorName() 
    def mergedFlavour = variant.getVariantData().getVariantConfiguration().getMergedFlavor(); 

    if (flavorName.toLowerCase().contains("foobar")) { 
     mergedFlavour.setApplicationId(mergedFlavour.getApplicationId() + ".foobar") 
    } 
} 

zaten android-testing.gradle aynı şeyi yapmaya çalıştım ama aslında tüm packagenames arıyoruz İnce:

Installing de.test.foobar.debug 
DEVICE SHELL COMMAND: pm install -r "/data/local/tmp/de.test.foobar.debug" 
pkg: /data/local/tmp/de.test.foobar.debug 
Success 

Installing APK: 
Uploading file to: /data/local/tmp/de.test.foobar.debug.test 
Installing de.test.foobar.debug.test 
DEVICE SHELL COMMAND: pm install -r  "/data/local/tmp/de.test.foobar.debug.test" 
pkg: /data/local/tmp/de.test.foobar.debug.test 
Success 

Bu belirli ürün paketinin ambalajındaki "el ile" değiştirmeyi kaldırırsam, tüm sınamalar tamamlanır. Enstrümantasyonu değiştirmeyi denedim ve test yürütme yapılandırmasında aynı şey olduğundan emin oldum - ama ne yazık ki şanssız ...

Test çalıştırılırsa değiştirilen uygulamanın geçersiz kılınması olasılığı var mı ?

Her giriş için teşekkürler! testApplicationId

defaultConfig { 
    ... 

    multiDexEnabled true // <- if you have this you need the following 
    testInstrumentationRunner "com.android.test.runner.MultiDexTestRunner" 

    ... 
} 

cevap

2

, kendi gradle.build aşağıdaki eklemem gerekiyor Test Runner'ın testleri bulabilmesi için, değiştirdiğiniz her bir aroma için applicationId ile eşleşmesi gerekir. Bunu testVariants ile birlikte applicationVariants kullanarak yapabilirsiniz. Senin durumunda böyle

şey:

testVariants.all { variant -> 
    def flavorName = variant.getVariantData().getVariantConfiguration().getFlavorName() 
    def mergedFlavour = variant.getVariantData().getVariantConfiguration().getMergedFlavor(); 

    if (flavorName.toLowerCase().contains("foobar")) { 
     mergedFlavour.setApplicationId(mergedFlavour.getApplicationId() + ".foobar") 
    } 
} 
0

Son zamanlarda Android Studio 2.x yükseltilmiş ve MultiDex (anlık çalıştırma noktada gerek) etkinleştirdiyseniz

İlgili konular