J'aime beaucoup la convention maven : Il y a un arbre source séparé pour main et test dans le même projet, le code main est déployé, le code test ne l'est pas. Les structures des paquets peuvent être (mais ne doivent pas être) identiques.
project
src
main
java // source files
resources // xml, properties etc
test
java // source files
resources // xml, properties etc
Et en éclipse, quand vous choisissez new -> JUnit test case
Si vous avez besoin de plus d'informations, il vous suffit de changer le dossier source en src/test/java et de laisser le paquetage suggéré tel quel.
(L'un des avantages de rester dans le même paquet est d'avoir accès aux membres protégés et aux membres du paquet, bien que ce ne soit pas un comportement de test unitaire "correct").
Mise à jour : Voici un peu de code pour illustrer mon dernier point :
Classe principale (dans src/main/java) :
package com.test;
public class Foo{
static class Phleem{
public Phleem(final String stupidParameter){
}
}
String bar;
protected String baz;
protected Object thingy;
}
Classe de test (dans src/test/java) :
package com.test;
import org.junit.Test;
public class FooTest{
@Test
public void testFoo(){
final Foo foo = new Foo();
foo.bar = "I can access default-scoped members";
foo.baz = "And protected members, too";
foo.thingy = new Foo.Phleem("And I can access default-scoped classes");
}
}