Saya ingin melihat hasil pengujian (system.out / err, mencatat pesan dari komponen yang sedang diuji) saat dijalankan di konsol yang sama dengan yang saya jalankan:
gradle test
Dan jangan menunggu sampai tes dilakukan untuk melihat laporan pengujian (yang hanya dihasilkan ketika tes selesai, jadi saya tidak bisa "mengekor-f" apa pun saat tes sedang berjalan)
test
penutupan.-i
akan membuang banyak info yang tidak relevan pada terminal.grep
untuk menyaring ribuan garis yang tidak diinginkan. Lihat stackoverflow.com/questions/3963708/…Ini versi mewah saya:
sumber
|
daristartItem
karena menjalankan tugas melalui Android Studio 2.2.3 mengenalinya sebagai kesalahan dalam pesan dan itu mengganggu membangun sukses.Anda bisa menambahkan penutupan Groovy di dalam file build.gradle Anda yang melakukan pendataan untuk Anda:
Di konsol Anda, bunyinya seperti ini:
Karena versi 1.1 Gradle mendukung lebih banyak opsi untuk mencatat hasil tes . Dengan opsi-opsi tersebut, Anda dapat mencapai hasil yang serupa dengan konfigurasi berikut:
sumber
Sebagai stefanglase menjawab:
menambahkan kode berikut ke
build.gradle
(sejak versi 1.1) Anda berfungsi dengan baik untuk output pada tes yang lulus , dilewati dan gagal .Apa yang ingin saya katakan tambahan (saya menemukan ini adalah masalah bagi pemula) adalah bahwa
gradle test
perintah menjalankan tes hanya satu kali per perubahan .Jadi jika Anda menjalankannya untuk kedua kalinya tidak akan ada output pada hasil tes . Anda juga dapat melihat ini di output bangunan: gradle kemudian berkata UP-TO-DATE pada tes. Jadi tidak dieksekusi waktu ke-n.
Gradle cerdas!
Jika Anda ingin memaksa test case dijalankan, gunakan
gradle cleanTest test
.Ini sedikit keluar dari topik tapi saya harap ini akan membantu beberapa pemula.
sunting
Sebagai sparc_spread dinyatakan di komentar:
Jika Anda ingin memaksa Gradle untuk tes segar selalu berjalan (yang mungkin tidak selalu menjadi ide yang baik) Anda dapat menambahkan
outputs.upToDateWhen {false}
untuktestLogging { [...] }
. Lanjutkan membaca di sini .Perdamaian.
sumber
gradle cleanTest test
setiap waktu (pada Gradle 1.12). Tambahkanoutputs.upToDateWhen {false}
ketestLogging {...}
dan itu harus melakukan trik. Ini akan memaksa Gradle untuk menjalankan tes setiap saat. Saya menemukan ini di forum Gradle, diposting oleh Dockter sendiri . Semoga ini membantu.exceptionFormat "full"
untuk mendapatkan detail tentang apa yang gagal, berguna ketika Anda menggunakan AssertJ atau lib serupa.cleanTest
Anda dapat menggunakantest --rerun-tasks
--rerun-tasks
akan membuat semua tugas Anda jalankan kembali, bukan hanya tugas untuk tes.cleanTest test
pada Android Studio terbaru dan gradle 3.3 tidak bekerja di pihak saya, tetapi--rerun-tasks
melakukan trik Tidak tahu kenapa Tapi membaca jawaban ini benar-benar menyelesaikan sakit kepala saya, di mana tes f ** king logging setelah saya menambahkan semuanya.Penafian: Saya adalah pengembang dari Plugin Logger Tes Gradle.
Anda cukup menggunakan Plugin Tes Logger Gradle untuk mencetak log yang indah di konsol. Plugin ini menggunakan default yang masuk akal untuk memuaskan sebagian besar pengguna dengan sedikit atau tanpa konfigurasi tetapi juga menawarkan sejumlah tema dan opsi konfigurasi yang sesuai untuk semua orang.
Contohnya
Tema standar
Tema Mocha
Pemakaian
Pastikan Anda selalu mendapatkan versi terbaru dari Gradle Central .
Konfigurasi
Anda tidak memerlukan konfigurasi sama sekali. Namun, plugin ini menawarkan beberapa opsi. Ini dapat dilakukan sebagai berikut (nilai default yang ditampilkan):
Saya harap Anda akan menikmati menggunakannya.
sumber
slowThreshold
ke0
.Tambahkan ini untuk
build.gradle
menghentikan gradle dari menelan stdout dan stderr.Sudah didokumentasikan di sini .
sumber
Tugas 'test' tidak berfungsi untuk plugin Android, untuk plugin Android gunakan yang berikut ini:
Lihat yang berikut: https://stackoverflow.com/a/31665341/3521637
sumber
Sebagai tindak lanjut dari jawaban hebat Shubham, saya ingin menyarankan menggunakan nilai enum alih-alih string . Silakan lihat dokumentasi kelas TestLogging .
sumber
Versi minimalis favorit saya berdasarkan jawaban Shubham Chaudhary.
Masukkan ini ke dalam
build.gradle
file:sumber
Di Gradle menggunakan plugin Android:
Maka outputnya adalah:
sumber
Menggabungkan jawaban hebat Shubham dan JJD menggunakan enum sebagai ganti string
sumber
Sebagai lanjutan dari jawaban Benjamin Muschko (19 Maret 2011), Anda dapat menggunakan
-i
bendera bersama dengan grep , untuk memfilter ribuan garis yang tidak diinginkan. Contoh:Filter yang kuat - Hanya menampilkan setiap nama tes dan hasil unit, dan status build keseluruhan. Kesalahan atau pengecualian penyiapan tidak ditampilkan.
Filter lunak - Menampilkan setiap nama dan hasil pengujian unit, serta kesalahan pengaturan / pengecualian. Tetapi itu juga akan mencakup beberapa info yang tidak relevan:
Filter lunak, Sintaks alternatif: (token pencarian dibagi menjadi string individual)
Penjelasan tentang cara kerjanya: Output dari perintah pertama,,
./gradlew test -i
disalurkan ke perintah keduagrep
, yang akan menyaring banyak baris yang tidak diinginkan berdasarkan ekspresi reguler."-E"
mengaktifkan mode ekspresi reguler, dan"|"
berarti "atau". Nama dan hasil uji unit diizinkan untuk ditampilkan menggunakan" > "
, dan status keseluruhan diizinkan dengan"BUILD"
. Di filter lunak,"-v"
bendera berarti "tidak mengandung" dan"^"
berarti "mulai dari garis". Jadi menghapus semua baris yang dimulai dengan "Eksekusi" atau mulai dengan "Membuat", dll.Contoh untuk tes unit instrumentasi Android, dengan gradle 5.1:
Contoh untuk cakupan tes unit Jacoco, dengan gradle 4.10:
sumber
Jika Anda memiliki
build.gradle.kts
tulisan di Kotlin DSL Anda dapat mencetak hasil tes dengan (saya sedang mengembangkan proyek multi-platform kotlin, tanpa plugin "java" diterapkan):sumber
Tambahkan saja penutupan berikut ke build.gradle Anda. output akan dicetak setelah pelaksanaan setiap tes.
sumber