O contexto que utilizo aqui é de uma aplicação web com serviços REST. Nesse caso seria útil implementar testes de integração para testar o funcionamento desses serviços REST. É possível no mesmo projeto, dentro do diretório src/test/java implementar rotinas de testes unitários e integrados. No Maven podemos segmentar os tipos de testes, na configuração do plugin maven-surefire-plugin. No pom.xml indicamos quais são os testes que devem ser executados após o deploy, na fase integration-test.
A seguir o techo do pom.xml, aonde configuro o plugin, indicando quais são os componentes de teste unitário e quais são de testes integrados.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | ... < build > ... < plugins > < plugin > < groupId >org.apache.maven.plugins</ groupId > < artifactId >maven-surefire-plugin</ artifactId > < version >2.15</ version > < configuration > < excludes > < exclude >**/integration/*.java</ exclude > </ excludes > </ configuration > < executions > < execution > < id >integration-test</ id > < goals > < goal >test</ goal > </ goals > < phase >integration-test</ phase > < configuration > < excludes > < exclude >none</ exclude > </ excludes > < includes > < include >**/integration/*.java</ include > </ includes > </ configuration > </ execution > </ executions > </ plugin > </ plugins > </ build > ... </ project > |
A estratégia foi criar um pacote com conteúdo integration, e nele armazenar os componentes que implementam os testes de integração. Para executar os testes integrados bastar executar a instrução:
1 | mvn integration- test |
O build do Maven valida, compila, faz o pacote, realiza o deploy do pacote e por fim processa os testes integrados. Compartilhei no meu github um projeto, uma aplicação web c/ RESTEasy, que utiliza essa alternativa para processar testes integrados com Maven.
http://twitter.com/edermag
http://www.yaw.com.br