Melhor forma de organizar os pacotes de testes unitários dentro de um projeto

Boa tarde pessoal,

Tenho uma dúvida, no caso, estrutural. Até dei uma procurada no forum, mas confesso que não encontrei nada relevante a respeito, portanto, peço que desculpem caso exista um thread acerca do assunto.

Gostaria de saber qual a melhor forma de organizar os testes unitários dentro da estrutura de um projeto.

Estou entre três abordagens:

1-) Cada pacote tem um sub-pacote de testes

  • src
    – pacote1
    — pacote1.testes
    – pacote2
    — pacote2.testes

2-) Um pacote único para testes

  • src
    – pacote1
    – pacote2
    – testes

3-) Testes misturados com as classes, dentro dos pacotes

  • src
    – pacote1
    – pacote2

E ai senhores, qual a melhor? Ou nenhuma dessas?

Sugestões são bem vindas.

Obrigado,
Eduardo

Olá
Prefiro a primeira opção.
Abraços

a 1ª opção eu prefiro!

Ate mais

prefiro a 4a. opção! :twisted:

src /
   main / java
       br.com.meupacote.MinhaClasse

   test / java
       br.com.meupacote.MinhaClasseTest

Qualquer semelhança com o maven não é coincidência! :wink:

1 curtida

porque não utilizar a estrutura default do Maven:

src
–main
-----java
--------aqui vem os pacotes
–test
-----java
--------aqui vem os pacotes

desculpem… postei sem ver o post do qmx.

Concordo com ele.

Concordo, a estrutura do maven é a mais natural, porém não vejo isto como um padrão e sim uma comodidade. Use a que ficar mais simples pra vc.

Normalmente utilizo um “source folder” exclusivo para os testes, porque normalmente a idéia é que códigos de teste não fiquem juntos com os códigos da aplicação. Você pode pegar um projeto de código aberto, como por exemplo o hibernate, e você pode notar que os códigos de teste estão em uma estrutura diferente da dos códigos do projeto, ou seja, os testes não interessam para o cliente final (que não seja um desenvolvedor do projeto ou um cliente que vá estender o projeto), ou seja, os testes também não devem ir no deploy (seja qual for a forma, war, ear, etc).

Mas veja que você pode até misturar os códigos fonte da aplicação com os códigos de teste, o importante é que no final, os códigos de teste não estejam no deploy.

Obrigado pessoal. A estrutura sugerida por vocês, a do Maven, me parece mais agradável e organizada mesmo.

Valeu!
Eduardo

esb:

+1 dica: lembre que colocando os testes no mesmo pacote a visibilidade da classe sob teste é diferente que
se vc colocar no mesmo pacote. Forçando os testes a ficarem em outro pacote vc força que o uso da API
(pública) seja o mesmo que para qualquer outra classe usuária.

A estrutura do maven é a que prefiro também. Portanto, a sugestão fica:

src
+java
++pacote1
++pacote2

test
+java
++pacote1
+++testes
++pacote2
+++testes