你如何用Scala 2.11和sbt 0.13运行黄瓜?

时间:2015-10-08 15:51:59

标签: scala sbt cucumber bdd

有没有人有sbt 0.13和Scala 2.11黄瓜项目的例子?

  1. 我是否同时需要cucumber-scala_2.11sbt-cucumber-plugin" % "0.8.0"(该插件是最新的)?
  2. 插件现在在哪里?
  3. .feature文件在哪里?
  4. 黄瓜测试在哪里?
  5. 如何从sbt运行测试?
  6. (可选)如何从IntellJ(15)运行测试?

2 个答案:

答案 0 :(得分:10)

好的,我找到了一个有以下警告的解决方案:我没有使用sbt。

我们将首先编写黄瓜功能和步骤。然后我们将写一个" Runner"类,将由JUnit运行器运行(它将忽略黄瓜的存在)

程序

第1步。仅仅依靠一件事来编写黄瓜特征和步骤!

libraryDependencies += "info.cukes" % "cucumber-scala_2.11" % "1.2.4"

第2步:现在我们依赖junit(用于编写测试运行器)和cucumber-junit连接库,它们将允许我们告诉 JUni运行我们的黄瓜测试:

libraryDependencies += "info.cukes" % "cucumber-junit" % "1.2.4"
libraryDependencies += "junit" % "junit" % "4.12"

第3步:编写功能和步骤定义(根据我的经验,它们应放在测试中的同一文件夹中):

# My.feature
Feature: blah blah
  ....

// MySteps.scala
...

第4步:编写我们的测试跑步者

import cucumber.api.junit.Cucumber
import org.junit.runner.RunWith
@RunWith(classOf[Cucumber])
class RunTests extends {
}

第5步 :(可选)与IntelliJ集成

a)在IntelliJ中启用JUnit。这将允许我们通过运行我们的junit runner来运行我们的黄瓜测试。美丽!

  1. 文件
  2. 设置...
  3. 插件
  4. 搜索" JUnit"并确保它已启用

    现在我们只需右键单击.feature 文件中的并选择Run!

  5. 即可运行我们的黄瓜测试

    b)为Scala IntelliJ插件启用 Cucumber。 (确保启用了Scala插件)。这使IntelliJ能够确定如何将要素文件与scala文件相关联。如果没有此功能,您的要素文件将始终以黄色突出显示,并显示错误undefined step reference

    1. 文件
    2. 设置...
    3. 插件
    4. 浏览存储库...
    5. 搜索" Scala的黄瓜"
    6. 安装Cucumber for Scala插件
    7. 重启IntelliJ。

      现在您的功能文件将正确突出显示!

    8. 有用的资源

      1. 黄瓜的Java教程,这使我得到了这个解决方案:https://c0deattack.wordpress.com/2012/03/28/cucumber-jvm-with-cucumber-java-cucumber-junit-example/
      2. 人们非常乐于助人的黄瓜聊天室:https://gitter.im/cucumber/chat
      3. 目录结构(请注意,在scala中,我们似乎需要将功能和步骤文件放在同一个文件夹中:但是个别运行者的想法很有趣):http://www.hascode.com/2014/12/bdd-testing-with-cucumber-java-and-junit/#Directory_Structure

答案 1 :(得分:2)

要添加到@drozzy的答案中,特别是针对sbt: 在您的junit-interface项目中添加sbt作为依赖项

"com.novocode" % "junit-interface" % "0.11" % Test

按照第4步中@drozzy所示编写测试运行程序。 确保包括JUnit和Cucumber之间的连接:

@RunWith(classOf[Cucumber])

一旦这样做,sbt test将运行您的JUnit测试,并且其中一个“ JUnit测试”将运行您的Cucumber测试。