9

In relation to a previous question, I'd like to have multiple test folders for different types of test and be able to execute the tests contained in each folder with a separate SBT action.

For example, an action 'test-unit' would run only the tests contained under the folder src/test/scala/unit, and a 'test-functional' action would run only the tests under src/test/scala/functional. How would we write actions to do this?

Community
  • 1
  • 1
ChucK
  • 2,114
  • 1
  • 18
  • 20

1 Answers1

6

If you are using xsbt 0.10.0, you can easily create additional test configurations by defining the a full build configuration in a Scala file located in your project folder. Below is the wiki example for integration tests. The default directory layout is a bit different from yours, unit tests go in src/test/scala and integration tests in src/it/scala. From the console, you can then run test to execute unit tests or it:test for integration tests.

import sbt._
import Keys._

object B extends Build
{
  lazy val root =
    Project("root", file("."))
      .configs( IntegrationTest )
      .settings( Defaults.itSettings : _*)
      .settings( libraryDependencies += specs )

  lazy val specs = "org.scala-tools.testing" %% "specs" % "1.6.8" % "it"
}
Mark Jayxcela
  • 985
  • 1
  • 7
  • 17