2016-06-04 12 views
7

संकलन आम तौर पर मैं स्काला कोड संकलन के लिए विकल्प के इस सेट का उपयोग करें:एसबीटी: निर्धारित विशिष्ट scalacOptions विकल्प जब परीक्षण

scalacOptions ++= Seq(
    "-deprecation", 
    "-encoding", "UTF-8", 
    "-feature", 
    "-unchecked", 
    "-language:higherKinds", 
    "-language:implicitConversions", 
    "-Xfatal-warnings", 
    "-Xlint", 
    "-Yinline-warnings", 
    "-Yno-adapted-args", 
    "-Ywarn-dead-code", 
    "-Ywarn-numeric-widen", 
    "-Ywarn-value-discard", 
    "-Xfuture", 
    "-Ywarn-unused-import" 
) 

लेकिन उनमें से कुछ ScalaTest साथ अच्छी तरह से नहीं खेलते हैं, तो मैं -Ywarn-dead-code अक्षम करना चाहते हैं और परीक्षण संकलन करते समय -Ywarn-value-discard

मैं इस

scalacOptions in Compile ++= Seq(...) 

या

scalacOptions in (Compile, compile) ++= Seq(...) 

या यहाँ तक कि

val ignoredInTestScalacOptions = Set(
    "-Ywarn-dead-code", 
    "-Ywarn-value-discard" 
) 

scalacOptions in Test ~= { defaultOptions => 
    defaultOptions filterNot ignoredInTestScalacOptions 
} 

लेकिन सामान्य संकलन क्षेत्र के लिए पहले दो अक्षम विकल्प के रूप में अच्छी तरह से नहीं करता है, जबकि दूसरा तरह गुंजाइश जोड़ने की कोशिश की परीक्षण संकलन विकल्पों को प्रभावित नहीं करते हैं।

परीक्षण संकलित करते समय मेरे पास विकल्पों की एक अलग सूची कैसे हो सकती है?

उत्तर

3

एक ही मुद्दा है, @Mike Slinn जवाब मेरे लिए काम नहीं किया था। मेरा मानना ​​है कि परीक्षण के लिए विकल्पों संकलन विकल्पों का विस्तार? क्या अंततः चाल स्पष्ट रूप से परीक्षण

scalacOptions in Test --= Seq( "-Ywarn-dead-code", "-Ywarn-value-discard")

+1

यह एसबीटी में काम करता है, लेकिन नहीं Intellij में से नजरअंदाज कर दिया विकल्पों को दूर किया गया था। ऐसा लगता है कि यह इंटेलिज बग है, इसलिए मैं यह जवाब स्वीकार करता हूं। – Tvaroh

+2

सही। मैं एक मुद्दा भरा - https://youtrack.jetbrains.com/issue/SCL-11824 – LiorH

+0

बढ़िया है, धन्यवाद, मैं उस के लिए बहुत आलसी था। – Tvaroh

3

एक चर में सामान्य विकल्पों को परिभाषित क्यों नहीं करें (जिसे मैंने sopts कहा), और अन्य चर में अन्य विकल्प (जिसे मैंने soptsNoTest कहा)?

val sopts = Seq(
    "-deprecation", 
    "-encoding", "UTF-8", 
    "-feature", 
    "-target:jvm-1.8", 
    "-unchecked", 
    "-Ywarn-adapted-args", 
    "-Ywarn-numeric-widen", 
    "-Ywarn-unused", 
    "-Xfuture", 
    "-Xlint" 
) 
val soptsNoTest = Seq(
    "-Ywarn-dead-code", 
    "-Ywarn-value-discard" 
) 

scalacOptions in (Compile, doc) ++= sopts ++ soptsNoTest 
scalacOptions in Test ++= sopts 

एसबीटी 0.13.13 के साथ परीक्षण किया गया।

क्योंकि इस सवाल इतने लंबे समय तक अनुत्तरित रहा है, और स्काला 2.12 और 2.12.1 अंतरिम में जारी किए गए, मैं आम विकल्प सूट करने के लिए संशोधित।

Btw, मैं स्विच आप का उल्लेख का उपयोग कर ScalaTest के साथ किसी भी समस्या का अनुभव नहीं है। मैंने केवल इस सवाल का जवाब दिया क्योंकि यह दिलचस्प था।

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