我使用简单的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
答案 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.scala
和src/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
"""
}