如何在Cucumber中实现BeforeSuite功能

时间:2016-06-30 14:14:53

标签: cucumber cucumber-jvm

我是Cucumber的新手并熟悉它。

但是在我的框架中我有@Before和@After方法,它们在&之前执行。在每个场景之后。

但是我需要在我的方案执行之前进行少量清洁。为此,我想从TestNG获得类似的@BeforeSuite功能。

有人可以帮忙获得关于它的指示吗?

谢谢, 乌代

4 个答案:

答案 0 :(得分:1)

如果您的套件由一个跑步者定义,您可以使用简单的jUnit @BeforeClass@AfterClass注释。

答案 1 :(得分:0)

你需要扩展黄瓜亚军。

http://mkolisnyk.github.io/cucumber-reports/extended-cucumber-runner

从字面上做它在锡上所说的内容......标准黄瓜的延伸提供了presuite和aftersuite方法。

编辑:使用Beforesuite和Aftersutie方法的更详细用法。

http://mkolisnyk.github.io/cucumber-reports/before-after-methods

希望这有帮助。

答案 2 :(得分:0)

您可以将Cucumber与TestNG一起使用,请查看此存储库以开始使用:https://github.com/igniteram/testng-cucumber。它具有您正在寻找的所有必要方法 Before / AfterSuite 钩子!只是一个例子。

答案 3 :(得分:0)

从Cucumber 2.4.0开始,如果您添加以下类,它应该可以工作:

您可以将其放置在test / java / cucumber / runtime中。

package cucumber.runtime; //cannot change.  can be under /test/java

import cucumber.runtime.io.ResourceLoader;
import cucumber.runtime.snippets.FunctionNameGenerator;
import gherkin.pickles.PickleStep;

import java.util.List;

public class NameThisClassWhatever implements Backend {
    private Glue glue;
    private List<String> gluePaths;

    @Override
    public void loadGlue(Glue glue, List<String> gluePaths) {
        this.glue = glue;
        this.gluePaths = gluePaths;

        //Any before steps here
    }

    @Override
    public void disposeWorld() {
        //any after steps here
    }

    @Override
    public void setUnreportedStepExecutor(UnreportedStepExecutor executor) { }

    @Override
    public void buildWorld() { }

    @Override
    public String getSnippet(PickleStep p, String s, FunctionNameGenerator fng) {
        return null;
    }

    public NameThisClassWhatever(ResourceLoader resourceLoader)  { }
}