在 GitHub 上叉我

在 JUnit 中使用 Cucumber

配置 Cucumber JUnit

要开始使用 Cucumber,您需要将所需版本的 Cucumber JUnit 添加到您的项目中:

 <dependencies>
   [...]
     <dependency>
         <groupId>io.cucumber</groupId>
         <artifactId>cucumber-junit</artifactId>
         <version>${cucumber.version}</version>
         <scope>test</scope>
     </dependency>
   [...]
 </dependencies>

然后创建一个使用 Cucumber JUnit 运行器的空类。

package org.sample.cucumber;

import org.junit.runner.RunWith;

import cucumber.api.CucumberOptions;
import cucumber.api.junit.Cucumber;

@RunWith( Cucumber.class )
public class RunCucumberTest
{
  [...]
}

这将执行 runner 包中的所有场景。默认情况下,胶水代码假定在同一个包中。该@CucumberOptions注解可用于提供 Cucumber 的附加配置。

请注意,在此示例中,BDD 场景由 Surefire 插件在test构建生命周期阶段执行。

mvn test

使用 JUnit 规则

Cucumber 支持 JUnit 注释@ClassRule@BeforeClass并且@AfterClass. 这些是围绕功能套件调用的。不推荐使用这些,因为它限制了不同跑步者之间的可移植性。相反,建议使用 Cucumbers `Before` 和 `After` 挂钩来设置脚手架。

使用其他 JUnit 功能

Cucumber runner 就像一套 JUnit 测试。因此,其他 JUnit 功能(例如类别、自定义 JUnit 侦听器和报告器)以及重新运行失败的测试都可以正常工作。