2012-12-14 16 views
12

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?

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.

İlgili konular