Я объявил 2 метода @after аннотации, но он будет выполнять только первый метод, он не позволяет мне выполнить второй метод. Пожалуйста, взгляните на приведенный ниже код
Я хочу каждый раз выполнять 1 метод для выхода из браузера. Я хочу выполнить второй метод для неудачных тестов.
@Before
public void databaseLoading(Scenario scenario) {
//System.out.println("Test Environment Set Up");
System.out.println("\n------------------------------------------------ TEST ENVIRONMENT SET UP ------------------------------------------------------------------------------\n");
System.out.println("Executing Scenario :-> " + scenario.getName());
}
@After
public void browserTearDown()
{
System.out.println("End the browser");
driver.close();
}
public void Screenshot(Scenario scenario) {
// take the screenshot at the end of every test
String location = ".\\target\\TakeScreenshot";
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MMM-yyyy hh-mm-ss", Locale.ENGLISH);
Date date = new Date();
File scrFile =
((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
// now save the screenshto to a file some place
if (scenario.isFailed()) {
try {
FileUtils.copyFile(scrFile, new File(location + "\\" + dateFormat.format(date) + ".png"));
System.out.println("Screenshot saved");
} catch (IOException e) {
System.out.println("Error in taking Screenshot --> " + e);
}
}
}
Метод «Скриншот (cucumber.api.Scenario)» никогда не используется. Это сообщение об ошибке появляется для второго метода.
Все методы, которые вы хотите выполнить до или после теста, должны быть помечены @Before
или @After
соответственно. Screenshot(Scenario)
не помечен, и код из вашего примера никогда его не вызывает. Возможно, вы захотите сделать это @Rule
вместо этого в любом случае.
Сотрите предложение правила, огурец может не поддерживать правила.
поместите метод TearDown в последний
Вы отметили только метод browserTearDown()
.
Также добавьте тег @After
к методу Screenshot()
:
@After
public void browserTearDown()
{
System.out.println("End the browser");
driver.close();
}
@After
public void Screenshot(Scenario scenario) {
...
}
Привет, приятель! Большое спасибо за помощь. Сейчас это работает.
где твоя аннотация @before