2012-03-28 25 views
22

İki sayı eklemek için bir deneme testi yazdım. Bu numaraları komut satırından geçmem gerekiyor. BenKomut satırından girdiyi junit maven test programına geçirme

mvn -Dtest=AddNumbers 

Benim test programı olarak maven aracından bu junit testi çalıştırıyorum komut satırından bu sayıları geçmesine Bu nasıl

int num1 = 1; 
int num2 = 2; 

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

benziyor?

+1

biz burada – nullpointer

cevap

8

Daha sonra, bu

mvn -Dtest=AddNumbers -Dnum1=100

gibi komut satırında onları geçmek @artbristol önerdiği gibi sistem özellikleri olarak sayıları Geçme

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

+0

işaretlenmiş bir cevap alabilir miyim, nasıl yapılacağını? –

25

ile test erişebilirsiniz iyi bir fikir, ancak bu özelliklerin teste yayılacağının her zaman garanti edilmediğini fark ettim.

Bu adımları izledikten junit maven test programı için komut satırından giriş geçmek için

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

gibi maven surefire pluginargLine parametre kullanmak testine sistem özelliklerini geçtiğine emin olmak. Örneğin Maven tarafından yürütülen birim testi içine parametresini fileName geçmesi gerekiyorsa, o zaman adımları izleyin: JUnit kodunda

  1. - parametre Sistem özellikleri aracılığıyla aktarılır:

    @BeforeClass 
    public static void setUpBeforeClass() throws Exception { 
        String fileName = System.getProperty("fileName"); 
        log.info("Reading config file : " + fileName); 
    } 
    
  2. pom.xml olarak

    - güzelliğinde eklenti yapılandırmasında param adını belirtin ve Sistem özelliklerinden gerçek değerini almak için maven zorlamak için {fileName} notasyonu kullanmak

    <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. JVM sistem özelliklerine komut satırı geçiş fileName parametresinde
  4. : Biz dize parametresini geçmesi gerekiyorsa

    mvn clean test -DfileName=my_file_name.txt 
    
İlgili konular