Maven - Como compilar testes sem executá-los?

128

Existe uma maneira no Maven de compilar os testes sem executá-los? Eu quero usar o IDE para executar testes específicos e não todos.

user373201
fonte
8
Você provavelmente deve editar a pergunta ou alterar a resposta aceita.
Chiranjib

Respostas:

29

você pode tentar usar o parâmetro -DskipTests

Referências:

morador
fonte
No netbeans, era isso que eu estava fazendo. Eu vejo o seguinte mvn -Dmaven.test.skip = true -Dnetbeans.execution = true instalação limpa, então eu vejo o seguinte
user373201
[compilador: testCompile] Não compilando fontes de teste [surefire: test] Os testes são ignorados. Pelo menos usando o netbeans parece que, se os testes forem ignorados, ele não compila as fontes de teste
user373201
1
não importa, embora os logs digam isso, ele ainda parece compilar arquivos de teste.
precisa saber é o seguinte
34
isso leva a pular completamente os testes: execução e compilação, veja a resposta correta abaixo: test-compile. Eu usá-lo com mvn compilação limpa test-compilação em Eclipse
Yashima
3
@Yashima você está certo este aswer não é tão inteligente ... por favor aceitar a resposta abaixo, portanto, um possível excluir este
lweller
334

E a test-compilefase do ciclo de vida? Não requer nenhum teste pulando, porque ocorre antes da testfase. Ou seja,

$ mvn test-compile

E feito.

A introdução ao Ciclo de Vida da Construção explica mais adiante.

RonU
fonte
7
Era exatamente disso que eu precisava, obrigado. Eu não sei sobre o autor original; mas eu estava procurando compilar os testes e depois executá-los com um corredor de teste separado.
Mike Miller
30

Para compilar apenas os testes e o código, sem executá-los, basta:

mvn test-compile
orange77
fonte
7
Eu acho que teste-compilação inclui compilação
Whimusical
concorde com @Whimusical. Além disso, isso executará o objetivo de compilação 2 vezes.
Gabriel Petrovay
26

Ao executar uma meta que incluirá a fase de teste (como pacote), você pode fazer duas coisas:

  • Use o comando mvn -DskipTests=true package. Isso compilará todos os testes, mas não os executará.
  • Or mvn -Dmaven.test.skip=true package. Isso não irá compilar ou executar a ramificação de teste.
Martins
fonte
3

Como alternativa, você pode usar a maven.test.skip.execopção

mvn -Dmaven.test.skip.exec=true

O Maven compilará os testes sem executá-los. Eu uso essa opção em todos os meus projetos regularmente.

Stephan
fonte
1

Caso você realmente queira compilar apenas os testes (pule todas as outras fases, como compile), isso fará com que

mvn org.apache.maven.plugins:maven-compiler-plugin:3.1:testCompile

Veja as ligações do plug - in do ciclo de vida padrão .

schnatterer
fonte
0

Se você arquivo settings.xml, também poderá usar

<maven.test.skip>true</maven.test.skip>
menapole
fonte
5
Você nunca deve fazer isso. Se você precisar, defina-o na linha de comando, mas nunca permanentemente.
Sean Patrick Floyd
13
Nunca disse que você deveria ou não deveria fazê-lo. Apenas fornecendo conhecimento da opção.
Menapole
4
Isso faz com que o maven também não compile os testes.
Mike Miller
3
@ Sean Patrick Floyd: por que não? isso NÃO é permanente, seria configurá-lo no pom.xml.
Balázs Németh