Мы работаем над 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, и в соответствии с функциональностью огурца они должны выполняться до и после теста, но здесь эти аннотации проходят мимо.