2013-03-14 10 views
5

में कस्टम परीक्षण कॉन्फ़िगरेशन को परिभाषित करें मुझे एसबीटी में एक कस्टम टेस्ट कॉन्फ़िगरेशन को परिभाषित करने की आवश्यकता है जो परीक्षण चलाता है, लेकिन कुछ अतिरिक्त सेटिंग्स के साथ। मैं यह पता लगाने की कोशिश कर रहा हूं कि यह कैसे करना है, लेकिन मुझे यह सही नहीं लगता है।एसबीटी

मैं ऐसा कुछ करना चाहता हूं: > test जो सामान्य परीक्षण कार्य और > pipelinetest चलाएगा जो परीक्षण के समान ही होगा, केवल (javaOptions += "-Dpipeline.run=run" के साथ।

मैं समझ गए होंगे कि कैसे परीक्षा के लिए javaOptions निर्धारित करते हैं, इस तरह: javaOptions in pipelinetest += "-Dpipeline.run=run"

मैं pipelinetest कैसे परिभाषित इस लक्ष्य को प्राप्त करने के लिए होगा: javaOptions in test += "-Dpipeline.run=run" तो क्या मैं ऐसा करने में सक्षम होना चाहते हैं यह है? क्या यह एक नया काम होने की ज़रूरत है? या यह test में एक सेटिंग होगी। मैं इस समय एसबीटी के लिए बहुत नया हूं और इस पर काफी उलझन में हूं, और दस्तावेज पढ़ने से मदद नहीं मिली, इसलिए किसी भी मदद की सराहना की जाएगी।

+2

http://www.scala-sbt.org/release/docs/Detailed-Topics/Testing.html, विशेष रूप से अतिरिक्त परीक्षण कॉन्फ़िगरेशन और साझा स्रोतों पर अनुभाग देखें। –

उत्तर

0

मेरे पास केवल आंशिक उत्तर है, लेकिन मैंने सोचा कि यह उपयोगी जानकारी हो सकती है। मैं स्पार्क में एसबीटी बिल्ड के लिए कुछ ऐसा करने की कोशिश कर रहा था - मैं एक डीबगर के साथ परीक्षण चलाने का एक तरीका चाहता था। मार्क हाराह की टिप्पणी ने मुझे सही दिशा में इंगित किया। change I made was:

lazy val TestDebug = config("testDebug") extend(Test) ... baseProject .configs(TestDebug) .settings(inConfig(TestDebug)(Defaults.testTasks): _*) .settings(Seq( javaOptions in TestDebug ++= "-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005" .split(" ").toSeq))

यह test, testOnly की मेरी हमेशा की तरह आमंत्रण छोड़ दिया, आदि अकेला, लेकिन अब मैं भी testDebug:testOnly ... चला सकते हैं, जो अतिरिक्त विकल्प ऊपर परिभाषित का प्रयोग करेंगे। (यह संभवतः उन अतिरिक्त विकल्पों के साथ testDebug:test आदि भी बनाया गया है, जो उपयोगी नहीं हैं, लेकिन ओह ठीक है।)

मुझे वास्तव में समझ में नहीं आया कि क्यों, लेकिन यह काम करने के लिए मेरे लिए एक महत्वपूर्ण हिस्सा था inConfig(TestDebug)(Defaults.testSettings) के बजाय inConfig(TestDebug)(Defaults.testTasks) का उपयोग करें।

मेरे मामले में, मुझे यह पता लगाने में परेशानी हुई कि कैसे (ए) इसे बहु-परियोजना निर्माण के लिए काम करने के लिए मिलता है और (बी) हमारा निर्माण भी पीओएम फ़ाइल के आधार पर वीआईआर सी है, जो बनाता है प्रत्येक उदाहरण से अलग परियोजना परिभाषाएं।

सामान्य रूप से, एसबीटी के साथ मेरा मुद्दा यह है कि मुझे ऐसी जानकारी मिलती है जो संबंधित प्रतीत होता है, लेकिन मेरे निर्माण में कुछ असामान्य पहलू हैं जो मुझे उत्तर को पूरी तरह से माल-संभोग करने में असमर्थ बनाता है; और ऐसा लगता है कि मुझे पूरी तरह से समझने के बिना मामूली संशोधन की आवश्यकता है, उदाहरणों को संशोधित करना मुश्किल है।