簡體   English   中英

我們可以在同一方法上使用@dataprovider和@parameters批注嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM