Voglio eseguire gradle build
senza eseguire i test unitari. Provai:
$ gradle -Dskip.tests build
Non sembra fare nulla. C'è qualche altro comando che potrei usare?
-DskipTests
è per Maven
Voglio eseguire gradle build
senza eseguire i test unitari. Provai:
$ gradle -Dskip.tests build
Non sembra fare nulla. C'è qualche altro comando che potrei usare?
-DskipTests
è per Maven
Risposte:
È necessario utilizzare l' -x
argomento della riga di comando che esclude qualsiasi attività.
Provare:
gradle build -x test
Aggiornare:
Il link nel commento di Peter è cambiato. Ecco il diagramma dalla guida per l'utente Gradle
-x integTest
e così via, quindi non conveniente come la coperta di Maven -DskipTests
.
run
posso vedere l'effetto del mio programma Hello. Ma penso che stia compilando di nuovo tutto. Vorrei solo eseguire il programma Java.
Provare:
gradle assemble
Per elencare tutte le attività disponibili per il tuo progetto, prova:
gradle tasks
AGGIORNARE:
All'inizio potrebbe non sembrare la risposta più corretta, ma leggi attentamente gradle tasks
output o documenti.
Build tasks
-----------
assemble - Assembles the outputs of this project.
build - Assembles and tests this project.
gradle assemble
non compilerà i file principali. Se lavori per far riparare il tuo test unitario, allora hai bisogno gradle assemble testClasses
: penso che la denominazione dell'attività di compilazione sia piuttosto confusa.
La risposta accettata è quella corretta.
OTOH, il modo in cui avevo precedentemente risolto ciò era aggiungere quanto segue a tutti i progetti:
test.onlyIf { ! Boolean.getBoolean('skip.tests') }
Esegui la build con -Dskip.tests=true
e tutte le attività di test verranno ignorate.
È possibile aggiungere le seguenti righe a build.gradle
, **/*
esclude tutti i test.
test {
exclude '**/*'
}
È possibile escludere attività
gradle build --exclude-task test
Per escludere qualsiasi attività da Gradle utilizzare l' -x
opzione della riga di comando. Vedi l'esempio seguente
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'
}
Uscita di: gradle -q dist -x runningTest
task compile
compile test
running distribution job
Spero che questo ti dia la base
il modo diverso di disabilitare le attività di test nel progetto è:
tasks.withType(Test) {enabled = false}
questo comportamento è necessario a volte se si desidera disabilitare i test in uno di un progetto (o nel gruppo di progetti).
In questo modo funziona per tutti i tipi di attività di test, non solo per un "test" di Java. Inoltre, in questo modo è sicuro. Ecco cosa intendo, diciamo: hai una serie di progetti in diverse lingue: se proviamo ad aggiungere questo tipo di record in principale build.gradle
:
subprojects{
.......
tests.enabled=false
.......
}
falliremo in un progetto quando non avremo alcuna attività chiamata test
L'uso -x test
dell'esecuzione del test di salto, ma ciò esclude anche la compilazione del codice di test.
gradle build -x test
Nel nostro caso, abbiamo un processo CI / CD in cui un obiettivo è la compilazione e il prossimo obiettivo è il test (Build -> Test).
Quindi, per il nostro primo Build
obiettivo, volevamo garantire che l'intero progetto fosse ben compilato. Per questo abbiamo usato:
./gradlew build testClasses -x test
Sul prossimo obiettivo eseguiamo semplicemente dei test.
gradle build -x test --parallel
Se la tua macchina ha più core. Tuttavia, non è consigliabile utilizzare la pulizia parallela.
Per favore prova questo:
gradlew -DskipTests=true build
Nel 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 senza test hai due opzioni:
$ gradle assemble
$ gradle build -x test
ma se vuoi compilare il test:
$ gradle assemble testClasses
$ gradle testClasses