Compartilhando código de teste no Maven

Como você pode depender do código de teste de outro módulo no Maven?

Exemplo, eu tenho 2 módulos:

  • Base
  • a Principal

Eu gostaria que um caso de teste no Main estendesse uma class de teste base no Base. Isso é possível?

Atualização: encontrou uma resposta aceitável , que envolve a criação de um jar de teste.

Eu recomendo usar o tipo em vez do classificador (veja também: classificador ). Ele diz a Maven um pouco mais explicitamente o que você está fazendo (e eu descobri que m2eclipse e q4e gostam mais).

 com.myco.app foo 1.0-SNAPSHOT test-jar test  

Obrigado pela sugestão do módulo base. No entanto, prefiro não criar um novo módulo apenas para esse propósito.

Encontrei uma resposta aceitável na documentação do Surefire Maven e em um blog . Veja também ” Como criar um jar contendo classs de teste “.

Isso cria um arquivo jar de código de src/test/java usando o plugin jar para que os módulos com testes possam compartilhar código.

     org.apache.maven.plugins maven-jar-plugin 2.4    test-jar        

Para usar o JAR de teste anexado que foi criado acima, você simplesmente especifica uma dependência no artefato principal com um classificador de testes especificado:

  ...   com.myco.app foo 1.0-SNAPSHOT test-jar test   ...  

Nós resolvemos isso fazendo um projeto maven com código de teste como src / main / java e adicionando a seguinte dependência aos projetos:

   foo test-base 1 test  

Sim … apenas inclua o módulo Base como uma dependência no Main. Se você estiver apenas herdando o código de teste, poderá usar a tag de escopo para garantir que o Maven não inclua o código em seu artefato quando implantado. Algo como isso deve funcionar:

  BaseGroup Base 0.1.0-SNAPSHOT test