在 Typesafe activator play 应用程序中使用 Specs2
Using Specs2 in a Typesafe activator play application
我在 vanilla SBT 项目中多次成功使用 specs2。现在我开始学习typesafe activator platform
我做了以下步骤
activator new Shop just-play-scala
这是我的 build.sbt 文件
name := """Shop"""
version := "1.0-SNAPSHOT"
// Read here for optional jars and dependencies
libraryDependencies ++= Seq("org.specs2" %% "specs2-core" % "3.6.1" % "test")
resolvers += "scalaz-bintray" at "http://dl.bintray.com/scalaz/releases"
scalacOptions in Test ++= Seq("-Yrangepos")
lazy val root = project.in(file(".")).enablePlugins(PlayScala)
我创建了一个文件Shop/app/test/models/ShopSpec.scala
import org.specs2.mutable.Specification
class ShopSpec extends Specification {
def foo = s2"""
| This is a specification to check the 'Hello world' string
| The 'Hello world' string should
| contain 11 characters $e1
| start with 'Hello' $e2
| end with 'world' $e3
| """.stripMargin
def e1 = "Hello world" must haveSize(11)
def e2 = "Hello world" must startWith("Hello")
def e3 = "Hello world" must endWith("world")
}
当我 运行 activator test
我得到一个错误
[success] Total time: 0 s, completed Jun 24, 2015 12:21:32 AM
Mohitas-MBP:Shop abhi$ activator test
[info] Loading project definition from /Users/abhi/ScalaProjects/Shop/project
[info] Set current project to Shop (in build file:/Users/abhi/ScalaProjects/Shop/)
**cannot create a JUnit XML printer. Please check that specs2-junit.jar is on the classpath**
org.specs2.reporter.JUnitXmlPrinter$
java.net.URLClassLoader.findClass(URLClassLoader.java:381)
java.lang.ClassLoader.loadClass(ClassLoader.java:424)
sun.misc.Launcher$AppClassLoader.loadClass(Launcher.jav
我之前在使用SBT项目的时候,写过spec2测试用例成功。但只有当我使用 typesafe activator
时,我才会遇到测试用例的问题。
我什至将我的测试代码更改为像
这样简单的代码
import org.specs2.mutable.Specification
class ShopSpec extends Specification {
"A shop " should {
"create item" in {
failure
}
}
}
还是一样的问题
等等..我想我解决了。
activator play 平台已经包含了 specs2,所以我不需要为 specs2 调整 built.sbt 文件。
所以我删除了添加到 build.sbt 文件中的所有内容,并将文件保留为
name := """Shop"""
version := "1.0-SNAPSHOT"
lazy val root = project.in(file(".")).enablePlugins(PlayScala)
现在可以正常使用了。所以基本上,我不需要在 specs2 的激活器项目中添加任何东西。
我本可以删除问题...但将其保留在这里以便对某人有所帮助。
对我有用的是将以下内容添加到 build.sbt
:
libraryDependencies ++= Seq("org.specs2" %% "specs2-core" % "3.6.2" % "test",
"org.specs2" %% "specs2-junit" % "3.6.2" % "test")
我在 vanilla SBT 项目中多次成功使用 specs2。现在我开始学习typesafe activator platform
我做了以下步骤
activator new Shop just-play-scala
这是我的 build.sbt 文件
name := """Shop"""
version := "1.0-SNAPSHOT"
// Read here for optional jars and dependencies
libraryDependencies ++= Seq("org.specs2" %% "specs2-core" % "3.6.1" % "test")
resolvers += "scalaz-bintray" at "http://dl.bintray.com/scalaz/releases"
scalacOptions in Test ++= Seq("-Yrangepos")
lazy val root = project.in(file(".")).enablePlugins(PlayScala)
我创建了一个文件Shop/app/test/models/ShopSpec.scala
import org.specs2.mutable.Specification
class ShopSpec extends Specification {
def foo = s2"""
| This is a specification to check the 'Hello world' string
| The 'Hello world' string should
| contain 11 characters $e1
| start with 'Hello' $e2
| end with 'world' $e3
| """.stripMargin
def e1 = "Hello world" must haveSize(11)
def e2 = "Hello world" must startWith("Hello")
def e3 = "Hello world" must endWith("world")
}
当我 运行 activator test
我得到一个错误
[success] Total time: 0 s, completed Jun 24, 2015 12:21:32 AM
Mohitas-MBP:Shop abhi$ activator test
[info] Loading project definition from /Users/abhi/ScalaProjects/Shop/project
[info] Set current project to Shop (in build file:/Users/abhi/ScalaProjects/Shop/)
**cannot create a JUnit XML printer. Please check that specs2-junit.jar is on the classpath**
org.specs2.reporter.JUnitXmlPrinter$
java.net.URLClassLoader.findClass(URLClassLoader.java:381)
java.lang.ClassLoader.loadClass(ClassLoader.java:424)
sun.misc.Launcher$AppClassLoader.loadClass(Launcher.jav
我之前在使用SBT项目的时候,写过spec2测试用例成功。但只有当我使用 typesafe activator
时,我才会遇到测试用例的问题。
我什至将我的测试代码更改为像
这样简单的代码import org.specs2.mutable.Specification
class ShopSpec extends Specification {
"A shop " should {
"create item" in {
failure
}
}
}
还是一样的问题
等等..我想我解决了。
activator play 平台已经包含了 specs2,所以我不需要为 specs2 调整 built.sbt 文件。
所以我删除了添加到 build.sbt 文件中的所有内容,并将文件保留为
name := """Shop"""
version := "1.0-SNAPSHOT"
lazy val root = project.in(file(".")).enablePlugins(PlayScala)
现在可以正常使用了。所以基本上,我不需要在 specs2 的激活器项目中添加任何东西。
我本可以删除问题...但将其保留在这里以便对某人有所帮助。
对我有用的是将以下内容添加到 build.sbt
:
libraryDependencies ++= Seq("org.specs2" %% "specs2-core" % "3.6.2" % "test",
"org.specs2" %% "specs2-junit" % "3.6.2" % "test")