我發現,有2種方式來讀取TestNG的XML配置文件中的參數:註釋使用@Parameter批註或ITestContext讀取TestNG配置文件?
使用ITestContext
作爲測試類爭吵後
使用
@Parameter
註釋和定義參數名稱,DataProvider或Factory,並使用getCurrentXmlTest()
和getParameter()
來讀取參數。
以上任何一種方式在另一方面是否以任何理由爲首選?還有其他方法可以做到嗎?
我發現,有2種方式來讀取TestNG的XML配置文件中的參數:註釋使用@Parameter批註或ITestContext讀取TestNG配置文件?
使用ITestContext
作爲測試類爭吵後
使用@Parameter
註釋和定義參數名稱,DataProvider或Factory,並使用getCurrentXmlTest()
和getParameter()
來讀取參數。
以上任何一種方式在另一方面是否以任何理由爲首選?還有其他方法可以做到嗎?
我認爲區別在於範圍。如果我需要在我的所有測試套件中使用相同的參數,例如。 ENV變量,我會用它在實施ITestListener或ISuiteListener(用於套件範圍)的監聽器,然後使用ITestContext/Suitecontext下<test>
或下<suite>
但是應用在所有我的測試值,如果我需要非常具體的爲特定的測試案例提供參數,然後我會在這些特定的測試案例中使用@Parameter註釋。
另外,@Parameter只能使用簡單的值,因此可能會有一些用例,其中您的測試需要基於某些參數值的不同對象(而不是字符串)。在這種情況下,我更喜歡數據提供者,讀取參數值(您的第二個選項,雖然我認爲測試類的參數不正確),創建對象然後將其提供給測試。 (例如,可能屬性文件的名稱是一個param值,讀取該對象並根據屬性文件中的數據創建對象,並將其作爲不同的testdata提供給測試)。