在Typesafe激活器播放应用程序中使用Specs2

时间:2015-06-24 05:35:41

标签: scala specs2 typesafe-activator

我在香草SBT项目中成功使用过specs2多次。现在我开始学习类型安全激活平台。

我做了以下步骤

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
        }
    }
}

但仍然是同样的问题。

2 个答案:

答案 0 :(得分:1)

等等......我想我已经解决了。

激活器播放平台已包含specs2,因此我无需调整specs 2的built.sbt文件。

所以我删除了我添加到build.sbt文件的所有内容并将文件保留为

name := """Shop"""

version := "1.0-SNAPSHOT"

lazy val root = project.in(file(".")).enablePlugins(PlayScala)

现在它运作正常。所以基本上,我不需要在specs2的激活器项目中添加任何东西。

我本可以删除这个问题......但是把它留在这里,以便对某人有所帮助。

答案 1 :(得分:0)

对我有用的是将以下内容添加到build.sbt

libraryDependencies ++= Seq("org.specs2" %% "specs2-core" % "3.6.2" % "test",
                            "org.specs2" %% "specs2-junit" % "3.6.2" % "test")