Dans une situation similaire où je devais écrire Cas de test qui dépend de Variable d'environnement J'ai essayé ce qui suit :
- Je suis allé chercher Règles du système comme suggéré par Stefan Birkner . Son utilisation était simple. Mais très vite, j'ai constaté que son comportement était erratique. Lors d'une exécution, il fonctionne, et lors de l'exécution suivante, il échoue. J'ai fait des recherches et j'ai découvert que les règles de système fonctionnent bien avec JUnit 4 ou une version plus récente. Mais dans mon cas, j'utilisais des Jars qui dépendaient de JUnit 3 . J'ai donc sauté Règles du système . Pour en savoir plus, cliquez ici L'annotation @Rule ne fonctionne pas lors de l'utilisation de TestSuite dans JUnit .
- J'ai ensuite essayé de créer Variable d'environnement à travers Constructeur de processus fournie par Java . Ici, le code Java nous permet de créer une variable d'environnement, mais vous devez connaître le code de l'environnement. processus o programme que je n'ai pas. De plus, il crée une variable d'environnement pour le processus enfant, et non pour le processus principal.
J'ai perdu une journée à utiliser les deux approches ci-dessus, mais en vain. Ensuite, j'ai perdu une journée à utiliser les deux approches susmentionnées, mais en vain. Maven est venu à mon secours. Nous pouvons définir Variables d'environnement o Propriétés du système à travers POM Maven ce qui, à mon avis, est la meilleure façon de procéder Tests unitaires pour Maven Le projet est basé sur un système de gestion de l'information et de la communication. Vous trouverez ci-dessous l'entrée que j'ai faite dans POM fichier.
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<systemPropertyVariables>
<PropertyName1>PropertyValue1</PropertyName1>
<PropertyName2>PropertyValue2</PropertyName2>
</systemPropertyVariables>
<environmentVariables>
<EnvironmentVariable1>EnvironmentVariableValue1</EnvironmentVariable1>
<EnvironmentVariable2>EnvironmentVariableValue2</EnvironmentVariable2>
</environmentVariables>
</configuration>
</plugin>
</plugins>
</build>
Après cette modification, j'ai exécuté Cas de test et soudain, tout a fonctionné comme prévu. Pour l'information du lecteur, j'ai exploré cette approche dans Maven 3.x Je n'ai donc aucune idée de ce qu'il en est. Maven 2.x .