2015-10-14 67 views

回答

1

这是无法使用的数据提供者@BeforeTest(也许任何其他@BeforeX方法),但你可以前@Test方法,所有其他@Test方法依赖(dependsOnMethods)使用:

@Test(dataProvider="dp") 
public void beforeTest(<params...>) { 
    <...> 
} 

@Test(dependsOnMethods="beforeTest") { 
    <...> 
} 

但要小心! TestNG不是JUnit,那么@BeforeTest!= @BeforeMethod

+0

如果其无法将数据传递到@BeforeTest比有什么办法,通过它我可以通过数据来自数据提供者。数据可以公开并在数据提供者之外访问的方式。 – autoD

+0

我没有在我的例子中使用'@ BeforeTest',而是'@ Test'并使用dependsOnMethods进行模拟。我认为你错过了'@ BeforeTest'和'@ BeforeMethod',请检查文档。 – juherr

+0

我明白了,但我的情况是不同的,在这里我想登录到网站一次,以便登录代码我想在'@ beforetest'和执行'@test'我的其他操作将运行不止一次,但由于无法从外部访问数据提供者的数据,因此可以通过其他途径来实现。关于这个'dependsonmethod'我试过了,它给出的错误 – autoD

0

这是可能的。通过TestNG XML传递参数,并使用@BeforeClass中的ITTestContext读取它们。

只需使用

context.getCurrentXmlTest()。getParameters()

@SuppressWarnings("deprecation") 
    @BeforeClass 
    public void setUp(ITestContext context) { 
    System.out.println(context.getCurrentXmlTest().getParameters());  

    }