2015-07-14 18 views
5

मैं scalatest उपयोग करने के लिए कोशिश कर रहा हूँ, लेकिन Intellij पहचान नहीं कर सकते हैं:हल कर सकते हैं नहीं प्रतीक "Scalatest"

import org.scalatest._ 

यहाँ मेरी build.sbt फ़ाइल, मेरे scalatest.jar फ़ाइल के रूप में एक ही निर्देशिका में स्थित है।

src/main/scala/... 
src/test/scala/... 

पहले, नीले दिखाया गया है IntelliJ विचार में दूसरा हरे रंग:

scalaVersion := "2.11.2" 

libraryDependencies += "org.scalatest" % "scalatest_2.11" % "2.2.4" % "test" 

धन्यवाद

+1

क्या आपने IntelliJ के एसबीटी लॉग की जांच की है। अक्सर ऐसा तब होता है जब निर्भरता सही ढंग से हल नहीं होती है (उदा। गलत वर्तनी, गलत संस्करण इत्यादि)। आप प्रोजेक्ट सेटिंग्स पर जा सकते हैं और लाइब्रेरी टैब में देख सकते हैं यह देखने के लिए कि स्कैलास्ट वास्तव में शामिल है या नहीं। आपको 'scalatest.jar' फ़ाइल की आवश्यकता नहीं होगी, प्रबंधित निर्भरताओं के बारे में पूरा बिंदु यह है कि एसबीटी इसका ख्याल रखता है। यदि आपने प्रोजेक्ट बनाते समय 'ऑटो-आयात' की जांच नहीं की है, तो आपको 'build.sbt' संपादित करते समय एसबीटी बिल्ड को स्पष्ट रूप से रीफ्रेश करना होगा। –

+0

मैं अपनी परियोजना संरचना में गया और इसे बदल दिया। ऐसा लगता है कि इंटेलिज में खुद को हल किया गया है, संकलन "org.scalatest" पर अभी भी अपरिचित है। – nietsnegttiw

+1

क्या आप अपना पूरा 'build.sbt' प्रदान कर सकते हैं? आपको परियोजना संरचना को हाथ से बदलने की जरूरत नहीं है। अपने प्रोजेक्ट के लिए ऑटो-आयात सक्षम के साथ 'build.sbt' के आधार पर IntelliJ इसे आपके लिए करें। –

उत्तर

9

तो तुम प्रथा के अनुसार दो स्रोत फ़ोल्डरों की है। एसबीटी में पुस्तकालय निर्भरता इनमें से किसी के साथ जुड़े रहे हैं, इसलिए

"org.foo" % "bar_2.11" % "1.2.3" 

एक मुख्य निर्भरता, मुख्य स्रोत के लिए उपलब्ध है (और भी परीक्षण, क्योंकि परीक्षण मुख्य पर निर्भर करता है)। और

"org.foo" % "bar_2.11" % "1.2.3" % "test" 

एक परीक्षण निर्भरता है, केवल परीक्षण स्रोतों के लिए उपलब्ध है। विचार यह है कि ये पुस्तकालय हैं जो आपके उत्पाद के लिए आवश्यक नहीं हैं, बल्कि केवल यूनिट परीक्षण चलाने के लिए हैं।


आपके उदाहरण में, स्कैला-टेस्ट केवल परीक्षण स्रोतों के लिए उपलब्ध है, इसलिए मुख्य स्रोतों से इसे आयात करने का प्रयास विफल हो जाएगा।

+0

संक्षेप में, सुनिश्चित करें कि आपकी परीक्षण फ़ाइल 'src/test/scala' के अंतर्गत है या आयात सही तरीके से काम नहीं करेगा। – loxaxs

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