Eu quero executar gradle build
sem executar os testes de unidade. Eu tentei:
$ gradle -Dskip.tests build
Isso não parece fazer nada. Existe algum outro comando que eu poderia usar?
-DskipTests
é para Maven
Eu quero executar gradle build
sem executar os testes de unidade. Eu tentei:
$ gradle -Dskip.tests build
Isso não parece fazer nada. Existe algum outro comando que eu poderia usar?
-DskipTests
é para Maven
Respostas:
Você deve usar o -x
argumento da linha de comando que exclui qualquer tarefa.
Tentar:
gradle build -x test
Atualizar:
O link no comentário de Peter mudou. Aqui está o diagrama do guia do usuário Gradle
-x integTest
e assim por diante, não tão conveniente quanto o cobertor de Maven -DskipTests
.
run
consigo ver o efeito do meu programa Hello. Mas acho que está compilando tudo novamente. Eu gostaria apenas de executar o programa java.
Tentar:
gradle assemble
Para listar todas as tarefas disponíveis para o seu projeto, tente:
gradle tasks
ATUALIZAR:
Esta pode não parecer a resposta mais correta a princípio, mas leia atentamente os gradle tasks
resultados ou documentos.
Build tasks
-----------
assemble - Assembles the outputs of this project.
build - Assembles and tests this project.
gradle assemble
não compilará os arquivos principais. Se você trabalha para consertar seu teste de unidade, precisa gradle assemble testClasses
: acho que a nomeação da tarefa de compilação é bastante confusa.
A resposta aceita é a correta.
OTOH, a maneira como resolvi isso anteriormente foi adicionar o seguinte a todos os projetos:
test.onlyIf { ! Boolean.getBoolean('skip.tests') }
Execute a construção com -Dskip.tests=true
e todas as tarefas de teste serão ignoradas.
Você pode adicionar as seguintes linhas a build.gradle
, **/*
exclui todos os testes.
test {
exclude '**/*'
}
Você pode excluir tarefas
gradle build --exclude-task test
Para excluir qualquer tarefa da gradle, use -x
a opção de linha de comando. Veja o exemplo abaixo
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'
}
Saída de: gradle -q dist -x runningTest
task compile
compile test
running distribution job
Espero que isso lhe dê as informações básicas
a maneira diferente de desativar as tarefas de teste no projeto é:
tasks.withType(Test) {enabled = false}
Às vezes, esse comportamento é necessário se você deseja desativar os testes em um de um projeto (ou no grupo de projetos).
Dessa forma, trabalhando para todo o tipo de tarefa de teste, não apenas para 'testes' em java. Além disso, esse caminho é seguro. Aqui está o que quero dizer, digamos: você tem um conjunto de projetos em diferentes idiomas: se tentarmos adicionar esse tipo de registro no main build.gradle
:
subprojects{
.......
tests.enabled=false
.......
}
falharemos em um projeto quando, se não tivermos nenhuma tarefa chamada testes
Usar -x test
ignorar a execução do teste, mas isso também exclui a compilação do código de teste.
gradle build -x test
No nosso caso, temos um processo de CI / CD em que um objetivo é a compilação e o próximo objetivo é o teste (Build -> Test).
Portanto, para o nosso primeiro Build
objetivo, queríamos garantir que todo o projeto fosse bem compilado. Para isso, usamos:
./gradlew build testClasses -x test
No próximo objetivo, simplesmente executamos testes.
gradle build -x test --parallel
Se sua máquina possui vários núcleos. No entanto, não é recomendável usar limpeza paralela.
Por favor tente isto:
gradlew -DskipTests=true build
$ 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 sem teste, você tem duas opções:
$ gradle assemble
$ gradle build -x test
mas se você quiser compilar teste:
$ gradle assemble testClasses
$ gradle testClasses