2015-03-03 19 views
27

Test çıktısını konsol çıktısında açmak için herhangi bir yol var mı?Android Birim testlerinde konsol çıktısı nasıl açılır?

Bir HTML dosyasında oluşturulan test sonuçlarına bakabileceğimizi ve orada standart çıktıları kontrol edebildiğimizi biliyorum, ancak biraz tutarsız buluyorum. ,

Could not find method test() 

uygulanması java eklentisi kabul edilemez:

test { 
    testLogging { 
     events "passed", "skipped", "failed", "standardOut", "standardError" 
    } 
} 

Ama bir Android projede kullanmadan hataya neden oluyor:

Ben standart java eklentisi ile bunu yapmanın yolu olduğunu biliyoruz Elbette, Android eklentileriyle uyumlu değil.

+0

Hangi konsol demek? Tüm günlükler cihazdan geliyor. 'Logcat' aracı tüm günlükleri getirir. – eleven

+0

Özür dilerim, belki yeterince açık söylemedim. Ben JVM üzerinde yapılan Android birim testleri anlamına gelir, gradle sarıcı aracılığıyla basit terminalden başlatılan (yani logcat söz konusu değil) – scana

cevap

29
android { 

... 

    testOptions { 
     unitTests.all { 
     // All the usual Gradle options. 
      testLogging { 
       events "passed", "skipped", "failed", "standardOut", "standardError" 
       outputs.upToDateWhen {false} 
       showStandardStreams = true 
      } 
     } 
    } 
} 

, ben bu document izledi ve yukarıdaki gibi testLogging seçeneği eklendi. Bu src/test klasörü altında yazılan birim testleri için günlüğü yazmalı, ancak src/androidTest bir. Bu yanıtın anında Android Studio 2.0 önizlemesini ve 2.8 sürümünü kullanıyorum. Komutlar, iTerm 2'de çalıştırılan ./gradlew test ve ./gradlew test --continue idi.

+0

Testi "src/androidTest" altında çalıştırmak için, paketi sağ tıklatıp Android Studio'yu kullanarak 'com.example ...' içindeki 'Run 'Testlerini seçiyorum. – ninjahoahong

+0

Teşekkür ederiz! Sadece beklendiği gibi çalışır! – scana

+0

@scana Güzel, bu yardımcı oldu. – ninjahoahong

1

Bu, ona

android { 

... 

    testOptions.unitTests.all { 
    testLogging { 
     events 'passed', 'skipped', 'failed', 'standardOut', 'standardError' 
    } 
    } 
} 

Kaynak yapmalıdır: Benim durumumda https://groups.google.com/forum/#!topic/adt-dev/LwZiKTnj8Bc

+1

Ne yazık ki, benim için çalışma. Gradle 2.6. –

+2

Bu aslında benim için çalıştı. Çok teşekkürler! –

1

@ ninjahoahong'un (Tricky Android blog'a teşekkürler) daha da güzel bir çözüm.

Sadece allprojects 'vücuda proje düzeyinde build.gradle yanındaki kodu ekleyin:

allprojects { 
    // ... 
    tasks.matching {it instanceof Test}.all { 
     testLogging.events = ["failed", "passed", "skipped"] 
    } 
} 
+0

Benim için çalışmıyor. –

İlgili konular