Bonjour,
Est il possible de lancer les tests en prenant en compte le répertoire src/main/resources ?
Merci d'avance
Bonjour,
Est il possible de lancer les tests en prenant en compte le répertoire src/main/resources ?
Merci d'avance
Oui, en configurant son testResource sur son pom.xml.
Nous sommes tous semblables, alors acceptons nos différences !
--------------------------------------------------------------
Liens : Blog | Page DVP | Twitter
Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
Critiques : Apache Maven
romaintaz :
Il me semble que je l'ai déjà rajouté dans mon pom.xml. Je posterai le code demain pour vérifier s'il est bon.
denisC :
Les tests passent avec eclipse mais pas avec maven.
La classe testée charge des ressources depuis les sources principales. Et depuis maven, les tests échouent car il ne trouve pas les fichiers de ressources.
J'avais orienté mes recherches sur le plug in de test mais ça n'a pas l'air d'être ça d'après ce que tu me dis.
Effectivement, j'ai regardé dans le target/classes et toutes mes ressources sont bien là.
Ma classe testée charge les ressources par ce code là :
RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME);
URL url = ClassLoader.getSystemResource(RESOURCE_BUNDLE.getString(key));
Pensez vous que JUnit ne charge pas les classes comme avec un jar ?
P.S : Voici ce que j'avais rajouté sans succès dans mon pom.xml
<build>
<testResources>
<testResource>
<directory>src/main/resources</directory>
</testResource>
</testResources>
</build>
Voilà ton problème : tu utilises le classloader system. Dans maven, le classloader system est celui qui à servi à lancer Maven, donc il ne contient que le contenu de maven.jar.
Il te faut donc utiliser le classloader courant et non le classloader system.
Dans eclipse, il doit démarrer les tests dans une nouvelle JVM, ce qui lui permet d'avoir le system classloader avec tout dedans. Mais c'est beaucoup plus lent, parcequ'il faut démarrer une nouvelle JVM.
Tu pourrais faire la même chose avec Surefire (forkmode=always), même c'est qudn même plus propre et simple d'utiliser le dernier classloader de la hierarchie plutot que le system.
Bien joué le coup du class loader.
Les tests vont un peu plus loin maintenant.
Les problèmes restants sont une autre histoire avec le serveur X11 ; je vais ouvrir un autre fil de discussion.
Merci beaucoup,
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager