Play! framework: customize which tests are run

后端 未结 5 969
温柔的废话
温柔的废话 2021-02-13 15:11

I have a Play! 2 for Scala application, and I am using Specs2 for tests. I can run all tests with the test command, or a particular specification with test-on

5条回答
  •  无人及你
    2021-02-13 15:40

    I came across this question while trying to figure out how to do something similar for ScalaTest with Play. SBT has detailed documentation on how to configure additional test configurations but these could use a bit of tweaking for Play.

    Apart from the subtly different Project configuration I found that I wanted to crib a bunch of the test settings from PlaySettings. The following is running and generating an Intellij project with integration test sources in the "/it" directory. I may still be missing reporting and lifecycle hooks,

    object BuildSettings {
      def testSettings = {
        // required for ScalaTest. See http://stackoverflow.com/questions/10362388/using-scalatest-in-a-playframework-project
        testOptions in Test := Nil
      }
    
      def itSettings = {
        // variously cribbed from https://github.com/playframework/Play20/blob/master/framework/src/sbt-plugin/src/main/scala/PlaySettings.scala
        sourceDirectory in IntegrationTest <<= baseDirectory / "it"
        scalaSource in Test <<= baseDirectory / "it"
        libraryDependencies += "play" %% "play-test" % play.core.PlayVersion.current % "it"
      }
    }
    
    object ApplicationBuild extends Build {
      val main = play.Project(
        appName,
        appVersion,
        Dependencies.dependencies)
        .configs( IntegrationTest )
        .settings(Dependencies.resolutionRepos)
        .settings(BuildSettings.testSettings)
        .settings(Defaults.itSettings : _*)
        .settings(BuildSettings.itSettings)
    }
    

提交回复
热议问题