Saya ingin mengeksekusi gradle build
tanpa menjalankan tes unit. Saya mencoba:
$ gradle -Dskip.tests build
Sepertinya tidak melakukan apa-apa. Apakah ada perintah lain yang bisa saya gunakan?
-DskipTests
untuk Maven
Saya ingin mengeksekusi gradle build
tanpa menjalankan tes unit. Saya mencoba:
$ gradle -Dskip.tests build
Sepertinya tidak melakukan apa-apa. Apakah ada perintah lain yang bisa saya gunakan?
-DskipTests
untuk Maven
Jawaban:
Anda harus menggunakan -x
argumen baris perintah yang mengecualikan tugas apa pun.
Mencoba:
gradle build -x test
Memperbarui:
Tautan dalam komentar Peter berubah. Berikut adalah diagram dari panduan pengguna Gradle
-x integTest
dan sebagainya, jadi tidak senyaman selimut Maven -DskipTests
.
run
saya dapat melihat efek dari program Hello saya. Tapi saya pikir itu kompilasi semuanya lagi. Saya hanya ingin menjalankan program java.
Mencoba:
gradle assemble
Untuk daftar semua tugas yang tersedia untuk proyek Anda, coba:
gradle tasks
MEMPERBARUI:
Ini mungkin kelihatannya bukan jawaban yang paling benar pada awalnya, tetapi bacalah dengan teliti gradle tasks
keluaran atau dokumen.
Build tasks
-----------
assemble - Assembles the outputs of this project.
build - Assembles and tests this project.
gradle assemble
men -debug unit test Anda: tidak akan mengkompilasi file utama. Jika Anda berusaha memperbaiki unit test Anda maka Anda perlu gradle assemble testClasses
- Saya pikir penamaan tugas build cukup membingungkan.
Jawaban yang diterima adalah yang benar.
OTOH, cara saya sebelumnya memecahkan ini adalah dengan menambahkan yang berikut ke semua proyek:
test.onlyIf { ! Boolean.getBoolean('skip.tests') }
Jalankan build dengan -Dskip.tests=true
dan semua tugas tes akan dilewati.
Anda dapat menambahkan baris berikut ke build.gradle
, **/*
mengecualikan semua tes.
test {
exclude '**/*'
}
Anda dapat mengecualikan tugas
gradle build --exclude-task test
Untuk mengecualikan tugas apa pun dari gradle, gunakan -x
opsi baris perintah. Lihat contoh di bawah ini
task compile << {
println 'task compile'
}
task compileTest(dependsOn: compile) << {
println 'compile test'
}
task runningTest(dependsOn: compileTest) << {
println 'running test'
}
task dist(dependsOn:[runningTest, compileTest, compile]) << {
println 'running distribution job'
}
Output dari: gradle -q dist -x runningTest
task compile
compile test
running distribution job
Semoga ini akan memberi Anda dasar
cara berbeda untuk menonaktifkan tugas pengujian dalam proyek adalah:
tasks.withType(Test) {enabled = false}
perilaku ini kadang-kadang diperlukan jika Anda ingin menonaktifkan tes di salah satu proyek (atau grup proyek).
Dengan cara ini bekerja untuk semua jenis tugas tes, bukan hanya 'tes' java. Juga, cara ini aman. Inilah yang saya maksud, katakanlah: Anda memiliki serangkaian proyek dalam berbagai bahasa: jika kami mencoba menambahkan catatan semacam ini di main build.gradle
:
subprojects{
.......
tests.enabled=false
.......
}
kita akan gagal dalam suatu proyek ketika jika kita tidak memiliki tugas yang disebut tes
Menggunakan -x test
lewati pengujian pelaksanaan tetapi ini juga mengecualikan kompilasi kode tes.
gradle build -x test
Dalam kasus kami, kami memiliki proses CI / CD di mana satu tujuan adalah kompilasi dan tujuan berikutnya adalah pengujian (Build -> Test).
Jadi, untuk Build
tujuan pertama kami, kami ingin memastikan bahwa seluruh proyek dapat dikompilasi dengan baik. Untuk ini kami telah menggunakan:
./gradlew build testClasses -x test
Pada tujuan berikutnya kita cukup menjalankan tes.
gradle build -x test --parallel
Jika mesin Anda memiliki beberapa inti. Namun, tidak dianjurkan untuk menggunakan pembersihan paralel.
Silakan coba ini:
gradlew -DskipTests=true build
Di Plugin Java :
$ gradle tasks
Build tasks
-----------
assemble - Assembles the outputs of this project.
build - Assembles and tests this project.
testClasses - Assembles test classes.
Verification tasks
------------------
test - Runs the unit tests.
Gradle build tanpa tes Anda memiliki dua opsi:
$ gradle assemble
$ gradle build -x test
tetapi jika Anda ingin mengompilasi tes:
$ gradle assemble testClasses
$ gradle testClasses