Огурец + мавен + тестНГ
@BeforeMethod не выполняется после выполнения @Test в огурце с TestNG
Я интегрировал maven с огурцом и написал скрипт, используя TestNG. Я добавил необходимые зависимости в pom.xml. Когда я выполняю скрипт, @BeforeMethod не работает после выполнения @Test. Можете ли вы сказать мне, поддерживаются ли аннотации TesNG или нет?. Пожалуйста, вы можете направить меня в этом.
Бегущий класс:
package Maveneditinv;
import cucumber.api.CucumberOptions;
import cucumber.api.testng.AbstractTestNGCucumberTests;
@CucumberOptions(features="Editfeaturefile" , glue = {"Stepdefinition"} , tags={"@SmokeTest , @FunctionalTest"} )
public class learn_cucmber_invTest extends AbstractTestNGCucumberTests {
}
Определение шага:
public class logininv {
public static WebDriver d;
JavascriptExecutor jse;
@Test(priority =1, enabled = true)
@When("^user enters duplicates email id in add new client corresponding error messages should be thrown$")
public void addclient1() throws InterruptedException {
Cliendaddimage obj3 = PageFactory.initElements(d, Cliendaddimage.class);
obj3.img1();
obj3.clientdetails("TQ 71", "TQ 71", "test.igs1@gmail.com", "test.igs1@gmail.com" , "test.igs@yahoo.com");
Thread.sleep(5000);
jse = (JavascriptExecutor)d;
jse.executeScript("window.scrollBy(0,1000)");
Thread.sleep(5000);
obj3.updateclick();
obj3.payterm("Term 12");
jse = (JavascriptExecutor)d;
jse.executeScript("window.scrollBy(0,1000)");
obj3.updateclick1();
}
@Test(priority=2, enabled = true)
@When("^Should select client from drop-down and updated$")
public void selectclientfromdrpdown1() {
Clientdropdown1 obj4 = PageFactory.initElements(d,Clientdropdown1.class);
obj4.clientdrp1("VK 03");
jse = (JavascriptExecutor)d;
jse.executeScript("window.scrollBy(0,1000)");
obj4.clientdrp2();
}
@BeforeMethod
@When("^user clicks on edit invoie link$")
public void i_click_on_edit_invoice_link() throws InterruptedException{
Thread.sleep(5000);
manageinv obj1 = PageFactory.initElements(d, manageinv.class);
obj1.editinvoices();
}
@BeforeClass
@When(value="I enter username and password")
public void Open_handdy_login_page() throws Throwable {
System.setProperty("webdriver.gecko.driver", "D:\\Selenium jars\\Selenium jar new\\geckodriver.exe");
d = new FirefoxDriver();
}
Исключение: @Beforemethod должен выполняться после каждого @Test
Фактически: @Beforemethod не работает после выполнения @Test
1 ответ
Вы ошиблись @Test
аннотации на шаг, так как они являются шагом, а не тестом! Это не так, как написано тест на огурец. Огурец - бегун для теста, созданный в Gherkin. Этот урок поможет вам понять. Ваш BDD должен выглядеть следующим образом:
Scenario: name of scenario
Given I enter username and password
When user clicks on edit invoie link
Then Should select client from drop-down and updated
Однако, если вы хотите использовать другой слушатель из TestNG, вы должны использовать QAF, который является расширением TestNG.