2017-07-27 127 views
9

Benim android app çoklu modül bir projedir: Tetkikler için JUnit/Mockito kullanıyorumAndroid Studio 3/Kotlin kod kapsamı

include (android-app/kotlin-android)':application', (pure kotlin)':presentation', (pure kotlin)':domain', (android-library/kotin-android)':dataproviders' 

ve ben KOTLIN android modüllerin sadece için kod kapsama üreten sorunu var. code coverage report Test stüdyosu android stüdyosu için görülebilir.

ui.viewmodel paketinde test sınıfı:

tested lines for kotlin-android module

Ama saf KOTLIN için (örn. Alan, sunum) test kapsamı çalışıyor: code coverage report pure kotlin module

Ben m kullanarak Android Studio 3.0 Canary 8 Benim build.gradle dosyalarına bakabilirsiniz github:

build.gradle

dependencies.gradle

application.build.gradle robot uygulama modülüne

presentation.build.gradle

Örnek testi: Saf KOTLIN mod

MostPopularViewModelTest

Örnek testi ule:

MostPopularPresenterTest

biri bana benim sorunum yardımcı olabilir misiniz? Jacoco üzerinden kod kapsamı oluşturmaya çalıştım ancak kod kapsamı da göstermedi.

cevap

6

Çözüm modülü için build.gradle bu bu gradle görevi eklemektir:

task copyTestClasses(type: Copy) { 
    from "build/tmp/kotlin-classes/debugUnitTest" 
    into "build/intermediates/classes/debug" 
} 

Ve çalıştırın:

gradlew copyTestClasses 

Sonra sorunsuz kod kapsama raporu oluşturmak.

+3

Bu, kod kapsamı yerine sınama bildirmek gibi görünüyor mu? – Elye

+0

Bu bahşiş için teşekkürler! @Elye haklı, "build/tmp/kotlin-classes/debug" den kopyalamanız gerekir – Rule

+0

@Hype Bekleyen düzenlemeye bir göz atın ve cevabınızı geliştirmek için gerekli gördüğünüz takdirde onaylayın. – FrankerZ