Como usar Maven Surefire plug-in com diferentes grupos para teste e integração-teste?
-
03-07-2019 - |
Pergunta
Eu quero usar testng com o Surefire plug-in de Maven . A idéia é marcar alguns testes com um integrationTest
grupo e executar o plug-in duas vezes:. Para test
objetivo excluindo o integrationTest
grupo e para integration-test
objetivo incluindo apenas o integrationTest
grupo
Eu encontrei alguns material para a execução do plug-in para ambos objetivos e que funciona, mas o grupo para a segunda corrida não funciona (nenhum teste é executado).
Aqui está o plug-in de configuração no elemento de construção da minha pom.xml
:
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<excludedGroups>integrationTest</excludedGroups>
<reportFormat>brief</reportFormat>
<trimStackTrace>true</trimStackTrace>
<useFile>false</useFile>
</configuration>
<executions>
<execution>
<id>integration-test</id>
<phase>integration-test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration>
<groups>integrationTest</groups>
<excludedGroups/>
<reportsDirectory>${project.build.directory}/surefire-reports/integration</reportsDirectory>
</configuration>
</execution>
</executions>
</plugin>
Alguma idéia? mvn integration-test
executa todos os testes de unidade como esperado (excluindo o integrationTest
grupo), mas o segundo teste apenas escreve:
Running TestSuite
Executar testes: 0, Falhas: 0, Erros: 0, ignorado: 0, Tempo decorrido: 0.562 sec
O resultado de mvn test
é como esperado, os testes executados e integrationTest
grupo é ignorada.
Solução
eu entendi - irritante implementação de configuração
! <excludedGroups/>
não substitui <excludedGroups>integrationTest</excludedGroups>
. Você precisa especificar qualquer grupo (desconhecido) em vez disso, <excludedGroups>none</excludedGroups>
por exemplo.
Outras dicas
O à prova de falhas do plugin é a melhor maneira de fazer isso (pode não ter estado disponível quando você postou esta pergunta). Ele adiciona uma fase de integração-teste para o ciclo de vida de criação. Ele permite que você tem atividades de instalação e desmontagem executar antes e após os testes, o que é útil para gerenciar um recipiente incorporado, por exemplo.