13

Maven Surefire-plugin は統合テストを実行しませんが (慣例により "IT" 接尾辞を付けて命名されています)、sbt はユニットと統合の両方を実行します。では、この動作を防ぐにはどうすればよいでしょうか。ScalaTest の統合テストと単体テストを区別する一般的な方法はありますか (デフォルトでは FeatureSpec-tests を実行しないでください)

4

2 に答える 2

20

その方法は、 http : //www.scala-sbt.org/release/docs/Detailed-Topics/Testing#additional-test-configurations-with-shared-sources の sbt マニュアルに正確に記載されています。

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

sbt test単体テストとsbt fun:test統合テスト、およびsbt test fun:testその両方を呼び出します。

于 2012-12-14T18:30:18.200 に答える