如何防止sbt运行集成测试?

dk1*_*k14 12 junit sbt scalatest

Maven surefire-plugin不运行集成测试(按照惯例命名为"IT"后缀),但sbt同时运行:unit和integration.那么,如何防止这种行为呢?是否存在区分ScalaTest的集成和单元测试的常用方法(默认情况下不运行FeatureSpec-tests)

Sch*_*rdt 19

如何做到这一点恰好记录在SBT手册上http://www.scala-sbt.org/release/docs/Detailed-Topics/Testing#additional-test-configurations-with-shared-sources:

//Build.scala
import sbt._
import Keys._

object B extends Build {
  lazy val root =
    Project("root", file("."))
      .configs( FunTest )
      .settings( inConfig(FunTest)(Defaults.testTasks) : _*)
      .settings(
         libraryDependencies += specs,
         testOptions in Test := Seq(Tests.Filter(itFilter)),
         testOptions in FunTest := Seq(Tests.Filter(unitFilter))
         )

  def itFilter(name: String): Boolean = name endsWith "ITest"
  def unitFilter(name: String): Boolean = (name endsWith "Test") && !itFilter(name)

  lazy val FunTest = config("fun") extend(Test)
  lazy val specs = "org.scala-tools.testing" %% "specs" % "1.6.8" % "test"
}
Run Code Online (Sandbox Code Playgroud)

要求sbt test进行单元测试和sbt fun:test集成测试以及sbt test fun:test两者.