Огурец + мавен + тестНГ

@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.

Другие вопросы по тегам