gradle build
Birim testleri yapmadan yürütmek istiyorum . Denedim:
$ gradle -Dskip.tests build
Hiçbir şey yapmıyor gibi görünüyor. Kullanabileceğim başka bir komut var mı?
-DskipTests
Maven için
gradle build
Birim testleri yapmadan yürütmek istiyorum . Denedim:
$ gradle -Dskip.tests build
Hiçbir şey yapmıyor gibi görünüyor. Kullanabileceğim başka bir komut var mı?
-DskipTests
Maven için
Yanıtlar:
-x
Herhangi bir görevi hariç tutan komut satırı argümanını kullanmalısınız .
Deneyin:
gradle build -x test
Güncelleme:
Peter'ın yorumundaki bağlantı değişti. İşte şeması gelen Gradle kullanıcı kılavuzunun
-x integTest
Maven'in battaniyesi kadar uygun değil, örneğin eklemeniz gerekebilir -DskipTests
.
run
Merhaba programımın etkisini görebiliyorum. Ama bence her şeyi tekrar derliyor. Sadece java programını yürütmek istiyorum.
Deneyin:
gradle assemble
Projeniz için kullanılabilir tüm görevleri listelemek için şunları deneyin:
gradle tasks
GÜNCELLEME:
Bu başlangıçta en doğru cevap gibi görünmeyebilir, ancak gradle tasks
çıktıyı veya dokümanları dikkatlice okuyun .
Build tasks
-----------
assemble - Assembles the outputs of this project.
build - Assembles and tests this project.
gradle assemble
ana dosyaları derlemez. Eğer birim test sabit almak için çalışıyorsanız o zaman ihtiyacınız gradle assemble testClasses
- Ben inşa görev adlandırma oldukça kafa karıştırıcı olduğunu düşünüyorum.
Kabul edilen cevap doğrudur.
OTOH, bunu daha önce çözdüğüm yol, tüm projelere aşağıdakileri eklemekti:
test.onlyIf { ! Boolean.getBoolean('skip.tests') }
Derlemeyi çalıştırdığınızda -Dskip.tests=true
tüm test görevleri atlanır.
Sen şu satırları ekleyebilirsiniz build.gradle
, **/*
dışlayan tüm testler.
test {
exclude '**/*'
}
Görevleri hariç tutabilirsiniz
gradle build --exclude-task test
Herhangi bir görevi sınıftan hariç tutmak için -x
komut satırı seçeneğini kullanın. Aşağıdaki örneğe bakın
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'
}
Çıktı: gradle -q dist -x runningTest
task compile
compile test
running distribution job
Umarım bu size temel
projedeki test görevlerini devre dışı bırakmanın farklı yolu:
tasks.withType(Test) {enabled = false}
bir projenin (veya proje grubunun) birinde testleri devre dışı bırakmak istiyorsanız bazen bu davranış gerekir.
Bu şekilde sadece bir java 'testi' için değil, her türlü test görevi için çalışır. Ayrıca, bu şekilde güvenlidir. Demek istediğim şu diyelim: farklı dillerde bir dizi projeniz var: bu tür bir kaydı ana olarak eklemeye çalışırsak build.gradle
:
subprojects{
.......
tests.enabled=false
.......
}
test adı verilen bir görevimiz yoksa bir projede başarısız olacağız
Kullanılması -x test
atlama test yürütme ancak bu da test kodu derleme dahil değildir.
gradle build -x test
Bizim durumumuzda, bir hedefin derlenmesi ve bir sonraki hedefin test edilmesi (Build -> Test) olan bir CI / CD sürecimiz var.
Bu nedenle, ilk Build
hedefimiz için tüm projenin iyi derlenmesini sağlamak istedik. Bunun için kullandık:
./gradlew build testClasses -x test
Bir sonraki hedefte sadece testler yapıyoruz.
gradle build -x test --parallel
Makinenizde birden fazla çekirdek varsa. Ancak, paralel temizleme kullanılması önerilmez.
Lütfen şunu deneyin:
gradlew -DskipTests=true build
In Java Plugin :
$ 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.
Testsiz Gradle build iki seçeneğiniz vardır:
$ gradle assemble
$ gradle build -x test
ama derleme testi istiyorsanız:
$ gradle assemble testClasses
$ gradle testClasses