2017-04-11 3 views
1

Meine Testklasse hat einen Code, der die gewünschte Validierung durchführt.Wie wird derselbe Code für mehrere Eingabedateien im TestNG-Framework ausgeführt?

Testklasse:

@Parameters({ "InputFile01"}) 
@Test 
public void testCase01(String InputFile01) { 
    //Code xyz 
} 

@Parameters({ "InputFile02"}) 
@Test 
public void testCase01(String InputFile02) { 
    //Code xyz (Same code as above) 
} 

Ich habe mehrmals über den Code kopieren für verschiedene Eingabedateien ausführen können, Wie gehe ich mit dieser

I Test Anzug aus xml leite

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> 
<suite name="Regression"> 

<test name="PI01_Sprint1_ID12345"> 

     <classes> 
      <class name="org.PI01.PI01_Sprint1_ID12345"> 
       <methods> 
        <parameter name="InputFile01" value="PI01\TC01.xml" /> 
        <include name="testCase01" /> 
        <parameter name="InputFile02" value="PI01\TC02.xml" /> 
        <include name="testCase02" /> 

       </methods> 
      </class> 
     </classes> 
    </test> 

</suite> 

Antwort

1

Sie brauchen nicht den Code mit parametrisierte Test zu wiederholen, das ist, was es für :)

erfunden hat 10

Die korrekte Verwendung in Ihrem Fall zu sein scheint:

@Parameters({ "filename"}) 
@Test 
public void testCase01(String filename) { 
    //openFile(filename) 
    //do something 
} 

Und in Config-Call-Test mit verschiedenen Werten dieses Parameter:

<test name="test file1"> 
    <parameter name="filename" value="file1.txt" /> 
...  
</test> 
<test name="test file2"> 
    <parameter name="filename" value="file2.txt" /> 
...  
</test> 

Und es scheint, dass Sie eine Reihe von Parametern zur Verfügung stellen können unter Verwendung von Dataprovider :

public class TestParameterDataProvider { 

    @Test(dataProvider = "provideFilenames") 
    public void test(String filename) { 
     //openFile(filename) 
     //assert stuff... 
    } 

    @DataProvider(name = "provideFilenames") 
    public String[] provideData() { 
     return new String[] { 
      "filename1", "filename2", "filename3" 
     }; 
    } 

} 

Mehr: https://www.tutorialspoint.com/testng/testng_parameterized_test.htm

https://www.mkyong.com/unittest/testng-tutorial-6-parameterized-test/

+0

Ps: Ich habe das eigentlich nicht mit testng versucht, aber laut mkyong sollte es funktionieren. Ich habe das gleiche mit Junit gemacht, also ist das Konzept vertraut –

Verwandte Themen