Bonjour, je travaille sur un projet java maven dans lequel je dois définir des variables dans le fichier pom.xml.
J’ai défini une variable comme suit dans mon fichier pom.xml.
org.apache.maven.plugins maven-surefire-plugin 2.16 **/*Test*.java **/*Tests*.java **/Test*.java NOTNULL
Pour essayer d’accéder à la variable my.value
, j’utilise le code Java suivant.
Ssortingng testdata = System.getProperty("my.value"); System.out.println(testdata);
Mais la sortie de la console me montre toujours null
même lorsque je règle la valeur de la variable.
Quelqu’un peut-il indiquer ce qui ne va pas ici?
Merci d’avance.
EDIT: J’ai aussi essayé de déclarer le systemPropertyVariables
sous le maven-failsafe-plugin
systemPropertyVariables
maven-failsafe-plugin
mais sans changement.
REMARQUE : lorsque j’essaie de convertir la ligne de code testdata comme suit,
Ssortingng testdata = System.getProperty("my.value").toSsortingng();
Je reçois une exception NullPointer à la ligne ci-dessus.
Edit: Désolé de poster ceci comme une réponse plus tôt ..
Je l’exécute en tant que test JUnit en utilisant le code plugin … / plugin que vous avez fourni, mais voici la sortie de ma console.
21 Oct 2014 12:36:56,973 main INFO s.MyClass - Default Implicit timeout set in Driver to: 100 21 Oct 2014 12:36:56,973 main INFO s.MyClass - Default URL for server is set to: http://localhost:8080 ---- null
L’URL est ce que j’essaie de récupérer à partir du fichier pom.xml et la condition que j’ai écrite est que
Si la valeur de la variable est vide, commence par $ {alors retourne localhost: 8080 sinon retourne l’URL.
Donc, si vous pouviez me signaler quelque chose qui ne va pas ici
Fonctionne pour moi avec maven-3.2.3
sur Windows
avec JDK 1.6.0_67
Création d’un projet avec maven-archetype-quickstart
…
Ajout de lignes de pom pertinentes … combinant l’ exemple surefire avec des lignes spécifiques dans la question ci-dessus.
org.apache.maven.plugins maven-surefire-plugin 2.16 NOTNULL ${project.build.directory}
Lignes pertinentes dans AppTest.java
/** * Rigourous Test :-) */ public void testApp() { System.out.println(System.getProperty("my.value")); System.out.println(System.getProperty("buildDirectory")); assertTrue( true ); }
Sortie pertinente du mvn test
------------------------------------------------------- TESTS ------------------------------------------------------- Running com.mycompany.app.AppTest NOTNULL C:\Users\raghu\Documents\GitHub\mvn-examples\test-properties\target Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.003 sec - in c om.mycompany.app.AppTest
Voici le projet en github.
@Raghuram Merci pour votre aide.
J’ai trouvé le moyen de contourner ce problème.
Dans mon fichier java, dans l’annotation @Before, je règle la valeur de la variable comme suit:
System.setProperty("my.value","this value");
Et maintenant ça marche très bien.
À votre santé.
Note: Les gars je suis désolé pour poster une autre question comme une réponse .. 🙁