2012-03-28 14 views
22

Napisałem test, aby dodać dwie liczby. Muszę przekazać te liczby z linii poleceń. Używam tego testu junit od narzędzia maven jakoJak przekazać dane wejściowe z wiersza poleceń do programu testowego junit maven

mvn -Dtest=AddNumbers 

Mój program testowy wygląda następująco

int num1 = 1; 
int num2 = 2; 

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

Jak przekazać te numery z linii poleceń?

+1

możemy otrzymać odpowiedź prosimy oznaczony tutaj – nullpointer

Odpowiedz

8

Można przekazać je w wierszu poleceń, jak ten

mvn -Dtest=AddNumbers -Dnum1=100

wtedy dostęp do nich w swoim teście z

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

+0

jeśli musimy przekazać ciąg parametru, jak to zrobić? –

25

przekazując numery jak właściwości systemowych jak sugeruje @artbristol to dobry pomysł, ale okazało się, że nie zawsze jest zagwarantowane, że te właściwości będą propagowane do testu.

mieć pewność, aby przekazać właściwości systemu do testu użyć parametru maven surefire pluginargLine, jak

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

Aby przekazać dane wejściowe z wiersza poleceń do junit programu testowego Maven wykonać następujące kroki. Na przykład, jeśli chcesz przekazać parametr fileName do testów jednostkowych wykonywanego przez Maven, a następnie wykonaj następujące czynności:

  1. w kodzie JUnit - parametr zostanie przekazana za pośrednictwem właściwości systemowe:

    @BeforeClass 
    public static void setUpBeforeClass() throws Exception { 
        String fileName = System.getProperty("fileName"); 
        log.info("Reading config file : " + fileName); 
    } 
    
  2. W pom.xml - określ nazwę paramu w konfiguracji wtyczki surefire i użyj notacji {fileName}, aby wymusić na maven, aby uzyskać rzeczywistą wartość z właściwości systemu

    <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. W towarzysza parametr fileName wiersza poleceń do właściwości systemu JVM:

    mvn clean test -DfileName=my_file_name.txt 
    
Powiązane problemy