Почему огурец @Before и @ After аннотация не работает в моем коде? - PullRequest
0 голосов
/ 04 февраля 2019

Мы работаем над BDD-фреймворком. Я вижу аннотацию Cucumber @Before, а @After не работает.

Вышеупомянутая проблема наблюдалась только с редактором Eclipse, и когда мы запускаем один и тот же код в Android Studio, я вижу @After и аннотация @Before работает нормально

Пробовал с тем же кодом в Android Studioи тот же код работает нормально, т.е. @Before @After аннотации выполнялись правильно, но когда мы попробуем ту же строку кода на Eclipse.Нашли обе аннотации мимоходом.

Код TestRunner

package functional;
import org.junit.runner.RunWith;
import cucumber.api.CucumberOptions;
import cucumber.api.junit.Cucumber;
@RunWith(Cucumber.class)
@CucumberOptions(features = "Downloads/caruso-p1cms-main-1.2.70@7d2adf6cf93/Test/DBusTests/Adapter/src/test/java/Feature/TestDummy.feature"
,glue = {"xyz.gta.test.common" })


public class TestRunner {


}

Код StepDefinition:

public class StepDefinition extends TestBase {
AndroidDriver driver = super.driver;

private GtaMain gm = new GtaMain(driver);


@Given("^List of recent destinations is non-empty$")
public void list_of_recent_destinations_is_non_empty() throws Throwable {


    gm.appLaucher();
    ArrayList cellDataFromExcel = ExcelOperation.getCelllData("excel", "Sheet1", 0);

    Iterator it = cellDataFromExcel.iterator();
    while (it.hasNext()) {
        gm.setValue_searchAddressOrName_HomeScreen(it.next().toString());
        gm.click_selectAddress_HomeScreen();
        gm.click_driveButton_OnMapScreen();
        gm.click_clearRouteButton_OnMapScreen();


    }

}

Код TestBase:

import cucumber.api.java.After;
import cucumber.api.java.Before;
import io.appium.java_client.android.AndroidDriver;

class TestBase {


private static String mLogFileName;
public AndroidDriver driver;

protected final NavAppController mNavAppController = new NavAppController();
protected final WebDriverManager mWebDriverManager = new WebDriverManager();


  public TestBase() {

    System.out.println("TestBase Constructor");
    mNavAppController.restartTestFramework();
    try {
        driver = mNavAppController.startWebDriver();
    } catch (MalformedURLException e) {
        e.printStackTrace();
    }
}

@Before
public void setUp() {
    System.out.println("setUP");

    mNavAppController.startNavAppAndAllowPermissions(false, false);
        try {
            mNavAppController.clearRouteFromMainMenu();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}


@After
public void tearDown() {
    System.out.println("tearDown");
    mNavAppController.stopNavApp();
    mNavAppController.stopDrivers();
    mNavAppController.stopTestFramework();
    mWebDriverManager.stopAppiumServer();


}

Здесь, вКласс StepDefnition расширяет TestBase, который имеет аннотации Cucumber @After и @Before, и в соответствии с функциональностью огурца они должны выполняться до и после теста, но здесь эти аннотации проходят мимо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...