【问题标题】:Difference in running Cucumber-JVM vs Cucumber runner(Junit)运行 Cucumber-JVM 与 Cucumber runner(Junit) 的区别
【发布时间】:2018-10-20 05:50:48
【问题描述】:

我对 Cucumber 很陌生。当我注意到运行单个功能与运行整个套件(来自 IntelliJ)时的差异时,我只是通过创建几个测试功能来进行试验。

我注意到,当我运行单个功能时,它使用 cucumber-jvm 选项运行,在这种情况下,未使用 CucumberConfig(用于定义 runner 和 cucumber 选项的空白类)和 Runner。但是,当我运行整个套件时,它会作为 JUnit 测试运行,显然,在这种情况下,Config 类和运行器就出现了。

我通过以下示例代码确认了这一点:

@RunWith(CustomRunner.class)
@CucumberOptions()
public class CucumberConfig {
    @BeforeClass
    public static void beforeClass()
    {
        System.out.println("This is run before Once: ");
    }

    @AfterClass
    public static void afterClass()
    {
        System.out.println("This is run after Once: ");
    }
}

CustomRunner

public class CustomRunner extends Cucumber {
        public CustomRunner(Class clazz) throws InitializationError, IOException {
            super(clazz);
            System.out.println("I am in the custom runner.");
        }

    }

另外,我知道在作为 cucumber-junit 运行时,我们无法传递特定功能以在 cucumber-jvm 中运行。如果我错了,请纠正我。

我的疑问是,这是默认行为还是我做错了什么。而且,如果这是默认设置,我怎样才能让黄瓜始终使用配置文件。

如果有人能对此提供一些见解,我将不胜感激。

【问题讨论】:

  • @MikeJRamsey56 谢谢。我知道如何使用 CucumberOptions。我的怀疑是不同的。其,cucumber-jvm可以使用CucumberConfig文件吗?
  • CucumberConfig 文件?你是说 config/cucumber.yml 吗?
  • @MikeJRamsey56 不,不是这样。我们使用上面给出的 runner 注释创建的空白配置类。

标签: junit cucumber cucumber-jvm cucumber-java cucumber-junit


【解决方案1】:

当您使用 IntelliJ IDEA 运行测试时,IDEA 将使用cucumber.api.Main 运行测试。因此,它将忽略CucumberConfig,也不会运行@BeforeClass@AfterClass,这些仅由JUnit 运行程序使用。

【讨论】:

  • 另外,如果你想提供 Cucumber 选项,你必须在你的 IDE 中提供它们作为命令行参数。您将仅限于 CLI 上可用的选项。
猜你喜欢
  • 1970-01-01
  • 2019-03-30
  • 2022-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多