2012-12-14 17 views
12

मैवेन surefire- प्लगइन एकीकरण परीक्षण नहीं चलाता है (वे "आईटी" प्रत्यय द्वारा प्रत्यय के साथ नामित), लेकिन एसबीटी दोनों चलाता है: इकाई और एकीकरण। तो, इस व्यवहार को कैसे रोकें? वहाँ एक आम तरीका ScalaTest के लिए एकीकरण और इकाई परीक्षण भेद करने के लिए है (डिफ़ॉल्ट रूप से FeatureSpec-परीक्षण चलाने के नहीं है)एसबीटी को एकीकरण परीक्षण चलाने से कैसे रोकें?

उत्तर

19

कि वास्तव में 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" 
} 

कॉल यूनिट परीक्षणों के लिए sbt test और दोनों के लिए sbt test fun:test एकीकरण परीक्षण के लिए sbt fun:test

2

नवीनतम एसबीटी के साथ सबसे आसान तरीका IntegrationTest कॉन्फ़िगरेशन और संबंधित सेटिंग्स here के रूप में लागू करने के लिए है, - और आपने अपने परीक्षण में src/it/scala निर्देशिका में अपने परीक्षण डाले हैं।

संबंधित मुद्दे