2012-10-10 21 views
5

我發現,有2種方式來讀取TestNG的XML配置文件中的參數:註釋使用@Parameter批註或ITestContext讀取TestNG配置文件?

  • 使用ITestContext作爲測試類爭吵後

    1. 使用@Parameter註釋和定義參數名稱,DataProvider或Factory,並使用getCurrentXmlTest()getParameter()來讀取參數。

    以上任何一種方式在另一方面是否以任何理由爲首選?還有其他方法可以做到嗎?

  • 回答

    3

    我認爲區別在於範圍。如果我需要在我的所有測試套件中使用相同的參數,例如。 ENV變量,我會用它在實施ITestListener或ISuiteListener(用於套件範圍)的監聽器,然後使用ITestContext/Suitecontext下<test>或下<suite>

    但是應用在所有我的測試值,如果我需要非常具體的爲特定的測試案例提供參數,然後我會在這些特定的測試案例中使用@Parameter註釋。

    另外,@Parameter只能使用簡單的值,因此可能會有一些用例,其中您的測試需要基於某些參數值的不同對象(而不是字符串)。在這種情況下,我更喜歡數據提供者,讀取參數值(您的第二個選項,雖然我認爲測試類的參數不正確),創建對象然後將其提供給測試。 (例如,可能屬性文件的名稱是一個param值,讀取該對象並根據屬性文件中的數據創建對象,並將其作爲不同的testdata提供給測試)。