Я хочу знать, может ли поставщик данных передавать данные в @BeforeTest вместе с @Test. Я работаю над скриптом, в котором я хочу передать некоторые данные @BeforeTest и выполнить некоторые операции. Если это возможно, пожалуйста, поделитесь логикой. Спасибо
может ли поставщик данных передавать данные в @BeforeTest
Ответы (2)
Невозможно использовать поставщиков данных с @BeforeTest
(и, возможно, любыми другими @BeforeX
методами), но вы можете использовать метод before @Test
, где все остальные методы @Test
зависят (dependsOnMethods
):
@Test(dataProvider="dp")
public void beforeTest(<params...>) {
<...>
}
@Test(dependsOnMethods="beforeTest") {
<...>
}
Но будь осторожен! TestNG не является JUnit, тогда @BeforeTest
!= @BeforeMethod
.
person
juherr
schedule
14.10.2015
Если невозможно передать данные в @BeforeTest, есть ли способ, с помощью которого я могу передать ему данные от поставщика данных. Способ, с помощью которого данные могут быть общедоступными и доступными за пределами поставщика данных.
- person autoD; 15.10.2015
В моем примере я использую не
@BeforeTest
, а @Test
и имитирую его с помощью dependOnMethods. Я думаю, что вы не соответствуете @BeforeTest
и @BeforeMethod
, проверьте документацию.
- person juherr; 15.10.2015
я понял, но мой случай отличается, здесь я хочу войти на веб-сайт один раз, чтобы код входа, который я хотел, был в
@beforetest
, и выполнять другие мои операции в @test
, которые будут выполняться более одного раза, но поскольку доступ к ним невозможен данные от поставщика данных снаружи, есть ли другой способ, с помощью которого это может быть достигнуто. относительно этого dependsonmethod
я пробовал, выдает ошибку
- person autoD; 15.10.2015
Вы должны привести конкретный пример
- person juherr; 15.10.2015
Возможно, вам нужны factories.
- person juherr; 19.10.2015
Это возможно. Передайте параметры через свой XML-код TestNG и прочитайте их, используя ITTestContext внутри вашего @BeforeClass.
Просто используйте
контекст.getCurrentXmlTest().getParameters()
@SuppressWarnings("deprecation")
@BeforeClass
public void setUp(ITestContext context) {
System.out.println(context.getCurrentXmlTest().getParameters());
}
person
Ben Herron
schedule
28.10.2017