Maven surefire-plugin entegrasyon testlerini (sözleşmeyle "IT" soneki ile adlandırılmıştır) çalıştırmaz, ancak sbt her ikisini de çalıştırır: birim ve entegrasyon. Peki, bu davranış nasıl önlenir? ScalaTest için entegrasyon ve birim testleri ayırt etmek için bir ortak yol var mı (varsayılan olarak FeatureSpec-testler etmeyin)sbt, bütünleştirme testlerini çalıştırmayı nasıl engeller?
12
A
cevap
19
bu tam http://www.scala-sbt.org/release/docs/Detailed-Topics/Testing#additional-test-configurations-with-shared-sources üzerinde sbt kılavuzuna belgelendirdikten Nasıl yapılır?
//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"
}
Çağrısı Birim testleri ve sbt fun:test
tümleştirme sınaması için sbt test
ve her ikisi için de sbt test fun:test
.
2
son sbt ile basit yolu sadece IntegrationTest
yapılandırma ve tarif here gibi karşılık gelen ayarları uygulamak için - ve projenizde src/it/scala
dizinde testlerinizi koydu.