Qual é a diferença entre os plug-ins Maven Surefire e Maven Failsafe?


Respostas:


140

Em palavras simples, o plugin Failsafe é projetado para executar testes de integração enquanto o Surefire para executar testes de unidade .

Isso é explicado com mais detalhes nas Perguntas frequentes do Maven :

  • maven-surefire-pluginfoi projetado para executar testes de unidade e, se qualquer um dos testes falhar, o build falhará imediatamente.

  • maven-failsafe-pluginfoi projetado para executar testes de integração e dissocia a falha de construção se houver falhas de teste da execução real dos testes.

    O nome "à prova de falhas " foi escolhido porque é sinônimo de infalível e porque implica que, quando falha, o faz de maneira segura.

    O plug - in Failsafe tem dois objetivos:

Veja também:


4
A questão interessante é por quê . Muitas ferramentas de construção funcionam perfeitamente sem fazer essa distinção possivelmente artificial e limitada. Configurar os dois plug-ins juntos e absorver seus relatórios de maneiras consistentes é bastante PITA.
Raphael

E não, as diferenças declaradas nas outras respostas não fornecem razão suficiente para ter várias ferramentas para o que deveriam ser filtros e sinalizadores.
Raphael

27

De https://maven.apache.org/surefire/maven-failsafe-plugin/ , eu diria que a diferença entre Surefire e Failsafe é a maneira como eles falham:

Se você usar o plug-in Surefire para a execução de testes, quando ocorrer uma falha no teste, a construção irá parar na fase de teste de integração e seu ambiente de teste de integração não terá sido destruído corretamente.

O plug-in Failsafe é usado durante as fases de teste de integração e verificação do ciclo de vida de construção para executar os testes de integração de um aplicativo. O plug-in Failsafe não falhará na construção durante a fase de teste de integração, permitindo assim que a fase de teste de pós-integração seja executada.


2
Então a pergunta é: por que usar o Surefire se eles estão nos dizendo que ele pode deixar as coisas em um estado incorreto?
user118967

6

No meu país, é o segundo resultado do Google ao pesquisar por "maven failafe maven surefire" para chegar a esta FAQ: Diferença entre maven-failafe-plugin e maven-surefire-plugin que afirma:

O plugin maven-surefire foi projetado para executar testes de unidade e se algum dos testes falhar, ele falhará na compilação imediatamente.

O plugin maven-failafe foi projetado para executar testes de integração e dissocia a falha de construção se houver falhas de teste da execução real dos testes. "

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.