在cucumber@AfterStep中,不在版本5.7.0上执行

在cucumber@AfterStep中,不在版本5.7.0上执行,cucumber,testng,cucumber-jvm,cucumber-java,Cucumber,Testng,Cucumber Jvm,Cucumber Java,我正在与Cumber、testng项目合作,并将最新的Cumber集成到该项目中。 如果我在我的runner类中使用TestNg注释,它们将很好地执行。但如果我在runner类中使用cucumber注释,它将不会执行。 所以我很困惑为什么,并寻找原因 下面的代码块“tearDown”方法在我执行“TestCases”类后不执行。 功能文件执行到结束时没有任何问题,但“@AfterStep”方法不执行。 我的依赖项中有任何问题吗? 因为我在testng中使用cucumber 5.7.0,所以在下导

我正在与Cumber、testng项目合作,并将最新的Cumber集成到该项目中。 如果我在我的runner类中使用TestNg注释,它们将很好地执行。但如果我在runner类中使用cucumber注释,它将不会执行。 所以我很困惑为什么,并寻找原因

下面的代码块“tearDown”方法在我执行“TestCases”类后不执行。 功能文件执行到结束时没有任何问题,但“@AfterStep”方法不执行。 我的依赖项中有任何问题吗?

因为我在testng中使用cucumber 5.7.0,所以在
下导入了“@AfterStep” '导入io.cumber.java.AfterStep;'

import io.cucumber.testng.AbstractTestNGCucumberTests;
导入io.cucumber.testng.CucumberOptions;
导入io.cumber.java.AfterStep;
公共类测试用例扩展了AbstractTestNGCucumberTests{
@黄瓜选项(
插件={“漂亮”,
“html:target/html报告”,
“json:target/cumber report.json”},
features={“src/test/resources/featureFiles/”,},
glue={“com.tests.testSteps”},
标记={“@regressiontest”})
@后步骤
公共无效拆卸(){
System.out.println(“=============此行未执行==============”;
}

}
可能您应该在步骤定义中添加@AfterStep。我用
cumberjava
6.9.1对它进行了测试,效果很好。但是,我将它与junit一起使用。我的
pom
看起来像这样

<junit.version>4.13.1</junit.version>
<cucumber.version>6.9.1</cucumber.version>
...
...
 <dependency>
      <groupId>io.cucumber</groupId>
      <artifactId>cucumber-java</artifactId>
      <version>${cucumber.version}</version>
      <scope>test</scope>
    </dependency>
      
      <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-junit</artifactId>
        <version>${cucumber.version}</version>
        <scope>test</scope>
    </dependency>
      
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>${junit.version}</version>
    <scope>test</scope>
</dependency>
然后把你的步态定义放在一个不同的类中

public class RestAssuredIT { 

 ....
 ....
@AfterStep // this imports from  io.cucumber:cucumber-java:6.9.1
    public void afterEveryStep(){

        //this prints after each step in feature file
        System.out.println("***after every step****");
    }
}

谢谢,正如您所说,我使用TestNg(使用我现有的pom配置)尝试了步骤定义方法,效果很好,并将继续使用该方法。
public class RestAssuredIT { 

 ....
 ....
@AfterStep // this imports from  io.cucumber:cucumber-java:6.9.1
    public void afterEveryStep(){

        //this prints after each step in feature file
        System.out.println("***after every step****");
    }
}