gpt4 book ai didi

java - 标记 cucumber 场景功能

转载 作者:行者123 更新时间:2023-11-30 05:26:45 25 4
gpt4 key购买 nike

我经历了一些非常奇怪的事情。也许有人可以解释我在哪里犯了错误。我的功能文件中有以下场景

@DeleteUserAfterTest
Scenario: Testing a functionality
Given admin exists
When a user is created
Then the user is verified

我在 Hooks 类中的 @After 方法如下所示

@After
public void tearDown(Scenario scenario) {
if (scenario.isFailed()) {
final byte[] screenshot = ((TakesScreenshot) driver)
.getScreenshotAs(OutputType.BYTES);
scenario.embed(screenshot, "image/png"); //stick it in the report
}
driver.quit();
}

我在步骤定义中使用以下方法来删除基于测试场景中传递的标签创建的用户,如下所示:

@After("@DeleteUserAfterTest")
public void deleteUser(){
//Do fucntionalities to delete user
}

我的测试运行程序看起来像这样:

import io.cucumber.testng.AbstractTestNGCucumberTests;
import io.cucumber.testng.CucumberOptions;

@CucumberOptions(
plugin = {"pretty","com.aventstack.extentreports.cucumber.adapter.ExtentCucumberAdapter:", "json:target/cucumber-report/TestResult.json"},
monochrome = false,
features = "src/test/resources/features/IntegrationScenarios.feature",
tags="@DeleteUserAfterTest",
glue="Steps")
public class IntegrationTest extends AbstractTestNGCucumberTests {
}

但是,当我启动测试用例时,有时我的用户会在 After("@DeleteUserAfterTest") 中被删除,但有时我的测试根本无法识别标记的 After。它直接转到我的 Hooks 类中的 After 方法并退出驱动程序。也许有人遇到过这个问题或者知道解决方法!

最佳答案

Java 中没有定义方法顺序。所以你必须告诉 Cucumber 你的钩子(Hook)应该按照什么顺序执行。较高的数字首先运行(在钩子(Hook)之前运行相反)。

@After(order = 500)
public void tearDown(Scenario scenario) {

}

@After(value = "@DeleteUserAfterTest", order = 1000)
public void deleteUser(){

}

关于java - 标记 cucumber 场景功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58413759/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com