14

我有一些需要使用数据提供程序参数完成的初始化语句,并且希望在@BeforeMethod设置方法中访问数据提供程序参数值。这可能吗?

4

2 回答 2

22

是的,完全有可能。在带@BeforeMethod 注释的方法中,您可以传递 Object[] 的可选内置参数,该参数基本上是传递给@Test方法的参数的副本。就我而言,我将 2 个参数传递给我的测试方法:

@Test(dataProvider="provider")
public void doTest( TestHelper testHelper, Map<String,String> paramMap ) {
   ....

所以,像这样的东西(它不需要是工厂 DataProvider):

@BeforeMethod
public void setUp( Object[] testArgs ) {
    Map<String,String> paramMap = (Map<String, String>)testArgs[1];
    TestHelper testHelper = testArgs[0];
    String testName = paramMap.get( "testCaseName" );
    log.logTcStep( "Test case name: " + testName );
    log.setLogTcName( testName );
    testHelper.setTestName( testName );
    testHelper.setTagsByString( paramMap.get( "browser" ) );
    testHelper.setBuildNumber( paramMap.get( "environment" ) );
}
于 2014-10-10T15:14:39.143 回答
-2

不,那里没有。

正确的方法是使用 @Factory 并为每组数据创建一个测试类的实例,如下所述:https ://groups.google.com/forum/#!topic/testng-users/3Kny3qTVdmg

于 2013-08-07T14:20:22.917 回答