首页 > 解决方案 > Cucumber JVM:在全局钩子之前运行标记的钩子

问题描述

我正在使用黄瓜 JVM 进行硒测试。我有几个测试用例来注册用户,每次测试后我都想删除用户。

所以我创建了一个新的标记钩子,用于这些测试。如下所述

问题是 Gloabl 钩子在关闭浏览器的tearDown标记钩子之前运行deleteUser,因此我无法运行删除用户的步骤。

有什么方法可以作为钩子的一部分deleteUser运行。tearDown

@After
public void tearDown(Scenario scenario){
    System.out.println("teardown");  
    closeDriver();
}

@After("@deleteNewUser")
public void deleteUser(){
    System.out.println("deleteUser");
 }

这就是我使用这些钩子的方式

@deleteNewUser
Scenario: Register user
  Given New User is registered

输出

拆除

删除用户

标签: seleniumselenium-webdrivercucumbercucumber-jvmcucumber-java

解决方案


使用钩子上的order 属性。After订单的最高值将首先执行。反向为Before钩。

@After(order=5)
public void tearDown(Scenario scenario){
    System.out.println("teardown");  
    closeDriver();
}

@After("@deleteNewUser", order=10)
public void deleteUser(){
    System.out.println("deleteUser");
 }

推荐阅读