Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Setting up actions for multiple test folders in SBT

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?

like image 227
ChucK Avatar asked Jun 03 '11 07:06

ChucK


1 Answers

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"
}
like image 89
Mark Jayxcela Avatar answered Sep 22 '22 01:09

Mark Jayxcela