2016-06-03 5 views
0

Hier ist meine Testng.xml SuitePassing Parameter von testng.xml und Datenanbieter zusammen in einem Test in testng

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> 
<suite name="Suite1" verbose="1"> 
    <test name="LoginTest"> 
    <parameter name="ExcelPath" value="D:/DataExcel.xls" /> 
     <classes> 
      <class name="com.idp.testcases.TestCaseDemoFlow" /> 
     </classes> 
    </test> 

Hier Teil meiner Testcase-Klasse ist

@Test(priority = 1, dataProvider = "SDLogin",dataProviderClass=ExampleDataProvider.class) 
public static void testLogin(String myAccountName, String myAccountPassword) 
{ 
System.out.println("myAccountName="+myAccountName); 
System.out.println("myAccountPassword="+myAccountPassword);\  
} 

Meine Frage ist, wie übergebe ich den ExcelPath-Parameter von XML-Suite an den Test zusammen mit dem Dataprovider?

Oder wenn dies nicht möglich

Ist es möglich, die Excelpath im Datenprovider weitergeben, ohne die TestCasedemo Klasse innerhalb des Data Provider zu erwähnen?

+0

können Sie die Excel-Datei als verwenden Ressource im Projekt? – nullpointer

Antwort

0

können Sie versuchen, die ITestContext verwenden, um die XML-für-Test zu erhalten:

DataProvider- Klasse:

@DataProvider(name = "SDLogin") 
public static Object[][] dataProviderLogin(ITestContext context) throws Exception { 
    String dataFile = context.getCurrentXmlTest().getLocalParameter(); //to get the params for *test* 
} 

Prüfklasse:

@Test(priority = 1, dataProvider = "SDLogin",dataProviderClass=ExampleDataProvider.class) 
public static void testLogin(String myAccountName, String myAccountPassword, String param) 
{