[英]How can we pass less parameters than the method require us to do using DataProvider?
[英]Can We use @dataprovider and @parameters annotations on the same method?
這是我嘗試過的示例程序。 但這是行不通的。 並拋出dataProvider不匹配錯誤。
public class dataprovide {
@Test (dataProvider="providerData")
@Parameters("num")
public void f(int number, int expected,int num) {
Assert.assertEquals(number +num, expected); //num =10 in testng.xml
//throw new SkipException("Message");
}
@DataProvider/*(name = "provideNumber")*/
public Object[][] providerData()
{
return new Object[][]{
{10,20}, {100,110}
};
}
}
您可以使用context.getCurrentXmlTest()
或將參數保存在@beforclass
。 兩者都說明如下
@BeforeClass
@Parameters({"testParam"})
public void init(String suiteParam) {
this.suiteParam = suiteParam;
}
@DataProvider(name = "testDataProvider")
public Object[][] createData1(ITestContext context) {
String testParam = context.getCurrentXmlTest().getParameter("testParam");
int theNums[][] = new int[][] {{10,20},{100,110}};
return new Object[][] {
{ testParam, theNums }
};
}
@Test(dataProvider = "testDataProvider")
public void testingParam( String DPparam1, int[][] DPparam2) {
System.out.println("xml param through data provider: " + DPparam1);
System.out.println("configured param from data provider: " + DPparam2[0][0]);
System.out.println("xml param from @beforeclass: " + suiteParam);
}
並在xml中是這樣的
<parameter name="testParam" value="test123"/>
以上打印
xml param through data provider: test123
configured param from data provider: 10
xml param from @beforeclass: test123
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.