2012-09-21 15 views
5

पर स्कैलाटेस्ट विधियों को नहीं ढूंढ सकता है मैं मार्टिन ओडर्स्की कोर्सरा कक्षा ले रहा हूं और असाइनमेंट स्कैलाटेस्ट का उपयोग कर रहा हूं। यह काफी परेशान है कि ग्रहण डबल क्लिक पर परीक्षण विधियों का पता नहीं लगा सकता है या जुनीट धावक में "फ़ाइल पर जाएं" पर राइट-क्लिक करें।ग्रहण जुनीट धावक डबल क्लिक

डबल क्लिक पर, एक "विधि 'xxx' नहीं मिला। परीक्षण कक्षा खोलना।" संवाद पॉप अप

क्या कोई कॉन्फ़िगरेशन समस्या है या क्या यह एक स्कैलास्ट बग/सीमा है?

यहाँ वर्ग से एक नमूना ScalaTest है:

package recfun 

import org.scalatest.FunSuite 

import org.junit.runner.RunWith 
import org.scalatest.junit.JUnitRunner 

@RunWith(classOf[JUnitRunner]) 
class CountChangeSuite extends FunSuite { 
    import Main.countChange 
    test("manual") { 
    assert(countChange(4,List(1,2)) === 3) 
    } 
} 

उत्तर

2

आप ScalaTest Eclipse प्लगइन का उपयोग ScalaTest 1.8 के साथ कर सकते हैं। लेकिन जब आप अपने परीक्षण चलाते हैं तो यह एक जीयूआई पॉप अप करेगा। उपयोगी, लेकिन ScalaTest 2.0 एकीकरण के रूप में उतना अच्छा नहीं है। मुझे लगता है कि Coursera पाठ्यक्रम के साथ आप 1.8 का उपयोग कर रहे हैं।

जुनीट के साथ आपकी वास्तविक समस्या यह है कि हमने स्कैलाटेस्ट में हल करने का प्रयास किया है। जुनीट न केवल एक परीक्षण ढांचा है, यह एक परीक्षण मंच भी है जिसे आप अपने @RunWith एनोटेशन के माध्यम से अन्य ढांचे को चला सकते हैं। इस मामले में आप जुनीट के माध्यम से स्कैलाटेस्ट चला रहे हैं। लेकिन आपको @RunWith एनोटेशन के साथ पूर्ण आईडीई समर्थन नहीं मिलता है, तो आपको बस चलाने की क्षमता मिलती है। यह वास्तव में जुनीट की एक सीमा है। आप जो चाहते हैं वह उस परीक्षण ढांचे के लिए आईडीई समर्थन भी प्राप्त करना है जो आप जुनीट (इस मामले में स्कैलाटेस्ट) के माध्यम से चल रहे हैं। जुनीट के साथ ऐसा करने का एकमात्र तरीका है अपने परीक्षण ढांचे के लिए आईडीई प्लगइन्स लिखना, जो बहुत काम है।

हम स्कैलाटेस्ट प्रोजेक्ट के हिस्से के रूप में उस पर काम कर रहे हैं, प्लगइन बना रहे हैं या प्लगइन बनाने में मदद कर रहे हैं जो स्कैलाटेस्ट उपयोगकर्ताओं को पूर्ण आईडीई समर्थन देते हैं। लेकिन उस प्रयास के हिस्से के रूप में हम "फाइंडर" की अवधारणा के साथ भी आए, जिसका उपयोग स्केलटेस्ट के माध्यम से चलाए जाने पर अन्य परीक्षण ढांचे को पूर्ण आईडीई समर्थन देने के लिए किया जा सकता है। (यानी, जैसे आप जुनीट के माध्यम से अन्य टेस्ट फ्रेमवर्क चला सकते हैं, आप स्कैलाटेस्ट के माध्यम से अन्य टेस्ट फ्रेमवर्क भी चला सकते हैं।) आप इस वीडियो के अंत में आईडीई समर्थन देने वाले खोजकर्ताओं के कुछ उदाहरण देख सकते हैं (वीडियो में लगभग 10 मिनट):

http://skillsmatter.com/podcast/scala/scalatest-scalamock-subcut

+0

के लिए स्काटाटेस्ट 2.0 का उपयोग करना है स्पष्ट स्पष्टीकरण और स्कैला टूलींग को आगे बढ़ाने के लिए धन्यवाद! अब अगर कोई केवल [एंड्रॉइड/एक्लिप्स/स्कैला आसानी से खेल रहा है] प्राप्त कर सकता है (http://stackoverflow.com/q/8113250/403455) ... –

3

हाँ, यह ग्रहण के लिए JUnit प्लगइन में एक ज्ञात बग है। हल करना भी मुश्किल है (जून के लिए प्लगइन)।

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

हालांकि, आप Scalatest plugin for Eclipse को आजमा सकते हैं, जो काम करना चाहिए।

+0

मुझे पसंद है कि आप JUnit प्लगइन :) करने के लिए हिरन पारित करने के लिए कोशिश कर रहे हैं। स्कैलाटेस्ट सीमा के विरोध में यह जूनिट रनर बग कैसा है? –

+0

क्योंकि आप जो भी क्लिक कर रहे हैं वह जुनीट प्लगइन है, स्केलटेस्ट नहीं। –

+0

जुनीट धावक को स्कैला हैकिंग का समर्थन करने की उम्मीद कैसे की जा सकती है? दूसरी तरफ, स्कालाटेस्ट को एक्लिप्स के जुनीट धावक का समर्थन करने के बारे में क्यों ख्याल रखना चाहिए?मुझे लगता है कि स्कालाटेस्ट जूनिट धावकों के साथ संगत होने के तरीके से बाहर निकल गया? संयोग से मैंने अभी ScalaTest ग्रहण प्लगइन स्थापित किया है, +1 और स्वीकार किया है :) –

0

यह मेरे लिए काम करता है:

1- अपने फ़ोल्डर परियोजना में एक कंसोल खोलें और "एसबीटी" निष्पादित।

2- ("एसबीटी" से बाहर निकले बिना) "ग्रहण" आदेश निष्पादित करें।

enter image description here