Gradle build senza test


Risposte:


1241

È necessario utilizzare l' -xargomento 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


45
Questa è la risposta corretta 'gradle assemblare' tralascerà anche molti altri compiti. Vedi questo diagramma per avere un'idea. Per le tipiche costruzioni nella vita reale, "assemblaggio graduale" tralascerà ancora più attività.
Peter Niederwieser,

13
Il collegamento da @PeterNiederwieser non è più valido. Probabilmente si riferiva a questo diagramma: gradle.org/docs/current/userguide/img/javaPluginTasks.png
Dave L.

9
Funziona anche se potrebbe essere necessario aggiungere ad esempio -x integTeste così via, quindi non conveniente come la coperta di Maven -DskipTests.
Jesse Glick,

1
@c_maker, come eseguire questa operazione da eclipse?
Rinuthomaz,

È possibile eseguire il file di classe? Voglio dire, con runposso vedere l'effetto del mio programma Hello. Ma penso che stia compilando di nuovo tutto. Vorrei solo eseguire il programma Java.
Sigur,

107

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 tasksoutput o documenti.

Build tasks
-----------
assemble - Assembles the outputs of this project.
build - Assembles and tests this project.

8
Come ulteriore suggerimento in caso di debug dei test unitari: gradle assemblenon 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.
Martin,

36

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=truee tutte le attività di test verranno ignorate.


3
Per me questa è ancora l'unica opzione funzionante poiché il test -x sembra funzionare solo sul progetto iniziale ma non per le dipendenze in una build multi-progetto (testato sul livello 2.1). Inserisci il test.onlyif ... in un blocco configure (subprojects.findAll {javaProjects.contains (it.name)}) {} nel tuo build.gradle di root e funzionerà per tutti i progetti.
timm

Buona In questo modo è familiare agli utenti Maven.
AlexR,

23

È possibile aggiungere le seguenti righe a build.gradle, **/*esclude tutti i test.

test {
    exclude '**/*'
}

2
Questa è la risposta migliore IMHO
Marco Sulla

1
Grazie! la tua risposta è stata utile.
JAY PATEL,


4

Riferimento

Per escludere qualsiasi attività da Gradle utilizzare l' -xopzione 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


si prega di inviare una schermata della pagina. non so dove mettere questa riga di codice ....
Hossein Mansouri,

Questo pezzo di codice dovrebbe andare nel tuo build.gradle :)
Suganthan Madhavan Pillai,

2

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


2

L'uso -x testdell'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 Buildobiettivo, 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.


0
gradle build -x test --parallel

Se la tua macchina ha più core. Tuttavia, non è consigliabile utilizzare la pulizia parallela.


0

Per favore prova questo:

gradlew -DskipTests=true build


6
@KirankumarDafda - no. Puoi pubblicare una risposta quando vuoi, anche se una risposta esistente è stata accettata. La nuova risposta potrebbe essere migliore della risposta accettata, oppure risolverla in un modo diverso o aiutare gli altri. Dalla recensione .
Wai Ha Lee,

@WaiHaLee Non riesco a modificare il mio commento, ma dato che ho ricevuto suggerimenti per i nuovi utenti, volevo spiegare che provare ad aggiungere risposte con ulteriori chiarimenti in modo che altri utenti possano verificare se questa risposta o codice è utile per loro.
Kirankumar Dafda,

0

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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.