2009-03-25 5 views

Répondre

11

Vous ne pouvez pas passer d'arguments de ligne de commande au test JUnit car aucune méthode principale n'est exécutée. Vous devrez utiliser les propriétés du système et accéder à celles-ci dans votre scénario de test.

Sélectionnez votre classe de test dans l'Explorateur de packages. Cliquez avec le bouton droit de la souris et sélectionnez Run As -> Open Run Dialog. Dans la boîte de dialogue d'exécution, vous trouverez un onglet Arguments dans lequel vous pouvez spécifier des arguments de programme et de machine virtuelle. Vous devriez pouvoir entrer les paramètres de propriété de votre système ici.

Alternativement, avec le projet souhaité comme projet actuel, dans le menu principal, sélectionnez Run -> Run Configurations pour accéder à l'onglet Arguments.

+0

Mais si je l'utilise éclipse, je n'ai pas besoin d'une méthode principale pour exécuter mon test. Comment puis-je y accéder sans les définir dans les propriétés du système? –

+0

Il semble qu'avec JUnit4 et Eclipse votre seule option est les propriétés du système. J'ai édité ma réponse pour refléter cela. – Mark

+1

Ceci est une autre option: http://stackoverflow.com/questions/14820175/how-to-pass-an-argument-to-a-android-junit-test/14821971#14821971 –

2

Vous l'avez probablement déjà compris, mais une fois compilé et si vous utilisez ANT ou MVN, vous pouvez passer des arguments à votre JUNIT ou TestNG depuis le fichier POM.XML.

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <version>2.4.3</version> 
    <configuration> 
    <forkMode>${test.junit.forkMode}</forkMode> 
    <skip>${test.junit.skip}</skip> 
    <argLine>${test.junit.argLine}</argLine> 
    <jvm>${jdk.compiler.path}/binjava</jvm> 
    </configuration> 
</plugin> 
6

Je vais passer en passant que quelqu'un a déjà répondu avec ça. Pour vous accéder à utiliser:

System.getProperty("propert.name.here"); 

(retourne String)

+0

Non seulement cela ne fait que gonfler le code , mais cela ne répond même pas à la vraie question. (Qui a voté de toute façon?) –

+1

Cet extrait de code montre comment obtenir la propriété système que @Mark a suggéré d'utiliser pour passer un argument de la configuration de lancement Eclipse Junit au test JUnit. Dans mon cas, je suis intéressé à le faire avec un numéro de port par exemple. – HDave

1

Dans cet exemple, je passe un argument webDriver comme firefoxDriver dans la fenêtre de configuration de l'exécution:

Example

Questions connexes