2012-06-04 121 views
1

我對此很陌生,信息未包含在TestNG文檔中,如果有人能幫助我,我只想了解幾件事情。將參數傳遞給testNG提供者

@DataProvider(name="test1") 
public Object[][] provideTestParam(ITestContext context){ 
    String testParam = context.getCurrentXmlTest().getParameter(test_param); 
    return new Object[][]{{ testParam }}; 
} 

@Test(dataProvider="test1") 
public void testData(String data){ 

    //... 
} 
  1. 有誰知道什麼是test_param?它是一個文件名,一個方法testng.xml文件中的一些參數?

  2. 我看着javadoc的ITestContext,我不清楚getParameter是如何工作的。它是否從數據來自的xml文件中獲取單個哈希映射?或者它是否會從xml文件中獲取數據來自的所有關鍵值對?

  3. 我想要做的就是將一個xml文件存儲在我的項目中,並使用xml文件中的數據。將其提供給數據提供者並運行我的測試。有沒有另一種方法來做到這一點?

  4. 可以getParameter從testng.xml中獲取值<test>節點或<class>節點?

回答

1
  1. 不知道,test_param不會出現在代碼段。
  2. ITestContext中暴露的參數是在testng.xml中找到的參數。
  3. 當然,你會想解析你自己的XML文件,然後返回你發現的作爲Object[][]

所有這些在the documentation的各個部分都有詳細說明,如果您有更多問題,請隨時再次提問。

+0

不,在文檔中找不到「ITestContext」一詞,也沒有「測試環境」一詞。 – djangofan

+1

我在http://testng.org/doc/documentation-main.html中發現了五個提及,當然,還有Javadoc和示例。 –

+0

我很榮幸您的幫助塞德里克。你是對的,我很高興我評論,因爲現在我發現了這一點:「任何\ @Before和\ @After方法可以聲明XmlTest類型的參數,其中包含當前的標記。」 。難以置信!另外,我只是不太明白文檔中的這句話:「TestNG允許您在方法中聲明其他參數。」他們提供的例子非常含糊。我最好的猜測是他們說我的測試方法可能看起來像這樣:void testIt(XmlTest thisTest)。這聽起來是對的嗎? – djangofan

相關問題