Specs2无法使用sbt

时间:2015-11-26 10:47:57

标签: scala sbt specs2

我使用简单的sbt构建了一个用于Spec2测试的简单项目。

package main.specs

import org.specs2._

class QuickStartSpec extends Specification {
  def is = s2"""
    This is my first specification
    it is working                 $ok
    really working!               $ok
                             """
}

这是我的build.sbt文件:

name := "QuickStartSpec"

version := "1.0"

scalaVersion := "2.10.1"

libraryDependencies ++= Seq("org.specs2" %% "specs2-core" % "3.6.5" % "test")

scalacOptions in Test ++= Seq("-Yrangepos")

但是当我在sbt

中运行此命令时
 testOnly main.specs.QuickStartSpec

我得到了这个:

[info] Updating {file:/Users/nabajeet/workspace/SpecsTest/}specstest...
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[info] Done updating.
[info] Passed: Total 0, Failed 0, Errors 0, Passed 0
[info] No tests to run for test:testOnly

我正在关注此页面以创建示例: https://etorreborre.github.io/specs2/website/SPECS2-3.6.5/quickstart.html

我无法弄清楚我的测试未被检测到的原因。

我的sbt版本在0.13.8

1 个答案:

答案 0 :(得分:1)

宣布

/(?<!\w)#[A-Z]\S{1,49}(?!\w)/i

libraryDependencies ++= Seq("org.specs2" %% "specs2-core" % "3.6.5" % "test") 的范围限制为仅测试源目录中的类。您将无法在生产代码中引用specs2类(specs2下的所有代码)

在评论中,您表明您已将规范放在src/main/

尝试将文件移至/ Users / nabajeet / workspace / SpecsTest / src / test / scala /specs/quickStartSpec.scala

不正确的位置是你没有被SBT选中的原因(我有信心说它也没有编译)。

默认情况下,SBT会为scala代码应用maven的standard directory layout添加/Users/nabajeet/workspace/SpecsTest/src/main/specs/quickStartSpec.scalasrc/main/scala/。这在SBT tutorial

中有记录

我刚创建了一个具有以下布局的项目

src/test/scala/

build.sbt包含

.
./built.sbt
./src
./src/test
./src/test/scala
./src/test/scala/QuickStartSpec.scala

和QuickStartSpec.scala包含

name := "QuickStartSpec"

version := "1.0"

scalaVersion := "2.11.4"

libraryDependencies ++= Seq("org.specs2" %% "specs2-core" % "3.6.5" % "test")

scalacOptions in Test ++= Seq("-Yrangepos")

这是我得到的sbt输出

package main.specs

import org.specs2._

class QuickStartSpec extends Specification {
  def is = s2"""
    This is my first specification
    it is working                 $ok
    really working!               $ok
                             """
}