在Testng中的一个Test中将参数从testng.xml和Data Providers传递到一起

时间:2016-06-03 12:38:49

标签: java testng testng-dataprovider

这是我的Testng.xml套件

<?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>

这是我的TestCase类的一部分

@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);\    
}

我的问题是如何将ExcelPath参数从xml套件传递给Test以及Dataprovider?

或者如果不可能

是否可以在数据提供者中传递Excel路径而不提及DataProvider中的TestCasedemo类?

1 个答案:

答案 0 :(得分:0)

您可以尝试使用ITestContext获取用于测试的xml:

DataProvider类:

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

测试类:

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