2012-03-28 8 views
22

Ich schrieb einen Junit-Test, um zwei Zahlen hinzuzufügen. Ich muss diese Zahlen von der Befehlszeile übergeben. Ich betreibe dieses junit Test von Maven-Tool alsWie Eingabe von der Kommandozeile an Junit Maven Testprogramm übergeben

mvn -Dtest=AddNumbers 

Mein Testprogramm sieht wie folgt aus

int num1 = 1; 
int num2 = 2; 

@Test 
public void addNos() { 
    System.out.println((num1 + num2)); 
} 

Wie diese Zahlen zu übergeben von der Kommandozeile?

+1

können wir bitte hier – nullpointer

Antwort

8

Sie können sie auf der Kommandozeile übergeben wie diese

mvn -Dtest=AddNumbers -Dnum1=100

sie dann in Ihrem Test Zugriff mit

int num1=Integer.valueOf(System.getProperty("num1"));

+0

markiert eine Antwort haben, wenn wir String-Parameter übergeben müssen, wie es tun? –

25

die Zahlen als Systemeigenschaften Passing wie von @artbristol vorgeschlagen ist eine gute Idee, aber ich habe festgestellt, dass es nicht immer garantiert ist, dass diese Eigenschaften auf den Test übertragen werden.

Um sicherzustellen, dass die Systemeigenschaften zum Test der maven surefire pluginargLine Parameter verwenden, um übergeben, wie

mvn -Dtest=AddNumbers -DargLine="-Dnum1=1 -Dnum2=2" 
10

Eingabe von Zeilenbefehl an Sie die folgenden Schritte junit Maven Testprogramm zu übergeben. Zum Beispiel, wenn Sie benötigen Parameter filename in Unit-Test von Maven ausgeführt passieren, dann den Schritten:

  1. Im JUnit-Code - Parameter werden über die Systemeigenschaften übergeben werden:

    @BeforeClass 
    public static void setUpBeforeClass() throws Exception { 
        String fileName = System.getProperty("fileName"); 
        log.info("Reading config file : " + fileName); 
    } 
    
  2. In pom.xml - geben Sie den Parameternamen in der Konfiguration des todsicheren Plugins an und verwenden Sie die Schreibweise {fileName}, um maven zu zwingen, den tatsächlichen Wert aus den Systemeigenschaften

    <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-surefire-plugin</artifactId> 
        <configuration> 
         <systemProperties> 
          <property> 
           <name>fileName</name> 
           <value>${fileName}</value> 
          </property> 
         </systemProperties> 
        </configuration> 
    </plugin> 
    
  3. zu erhalten
  4. Im Pass filename Parameter JVM-Systemeigenschaften Befehlszeile:

    mvn clean test -DfileName=my_file_name.txt