【发布时间】: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