我經歷了一些非常奇怪的事情。也許有人可以解釋我在哪里犯了錯誤。我的功能文件中有以下場景@DeleteUserAfterTestScenario: Testing a functionalityGiven admin existsWhen a user is createdThen the user is verified我在 Hooks 類中的 @After 方法如下所示@Afterpublic 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 方法并退出驅動程序。也許有人遇到過這個問題或者知道解決方法!
1 回答

交互式愛情
TA貢獻1712條經驗 獲得超3個贊
Java 中沒有定義方法順序。所以你必須告訴 Cucumber 你的鉤子應該按照什么順序執行。較高的數字首先運行(在鉤子之前運行相反)。
@After(order = 500)
public void tearDown(Scenario scenario) {
}
@After(value = "@DeleteUserAfterTest", order = 1000)
public void deleteUser(){
}
添加回答
舉報
0/150
提交
取消