2013-06-05 5 views
89

मेरे पैकेज परीक्षण मामले कई फ़ाइलों में बिखरे हुए हैं, अगर मैं go test <package_name> चलाता हूं तो यह पैकेज में सभी परीक्षण मामलों को चलाता है।किसी निर्दिष्ट फ़ाइल में परीक्षण केस कैसे चलाएं?

हालांकि उन सभी को चलाने के लिए अनावश्यक है। go test चलाने के लिए फ़ाइल निर्दिष्ट करने का कोई तरीका है, ताकि यह फ़ाइल में परिभाषित परीक्षण मामलों को ही चला सके?

उत्तर

130

दो तरीके हैं। आसान है -run ध्वज का उपयोग करना और उन परीक्षणों के पैटर्न मिलान नाम प्रदान करना जिन्हें आप चलाना चाहते हैं।

पूर्व: $ go test -run NameOfTest। अधिक जानकारी के लिए docs देखें।

अन्य तरीके से, विशिष्ट फ़ाइल नाम के लिए है परीक्षण आप चलाना चाहते हैं युक्त

$ go test foo_test.go 

लेकिन वहाँ एक पकड़ने है। यह काम करता है अच्छी तरह से करता है, तो

  • foo.go पैकेज foo
  • foo_test.go पैकेज foo_test और आयात 'foo' है।

यदि 'foo_test.go' और 'foo.go' एक ही पैकेज (एक सामान्य मामला) हैं, तो आपको 'foo_test' बनाने के लिए आवश्यक सभी अन्य फ़ाइलों का नाम देना होगा। इस उदाहरण में यह होगा:

$ go test foo_test.go foo.go 

मैं नाम पैटर्न का उपयोग करने की सलाह दूंगा। या, जहां/जब संभव हो, हमेशा सभी पैकेज परीक्षण चलाएं।

+1

संपादित करें: डॉक्स से क्या आप '-run' के साथ पहले (आसान) तरीके से विस्तार करना चाहते हैं? मुझे उस पर कोई मैनुअल संदर्भ नहीं मिल रहा है। –

+1

ओह, मैंने इसे यहां पाया http://golang.org/cmd/go/#hdr-Test_packages –

+1

आप 'सहायता सहायता testflag' –

81

@ ZZZZ के जवाब ज्यादातर पूरा, लेकिन सिर्फ संदर्भित documentation के माध्यम से खुदाई करने के लिए आप इस प्रकार एक पैकेज में एक भी परीक्षण चला सकते हैं होने से दूसरों को बचाने के लिए है:

go test packageName -run TestName 

ध्यान दें कि आप में पास करना चाहते हैं परीक्षण का नाम, फ़ाइल नाम जहां परीक्षण मौजूद है।

-run झंडा वास्तव में एक रेगेक्स स्वीकार करता है ताकि आप टेस्ट रन को परीक्षण के वर्ग तक सीमित कर सकें।

-run regexp 
    Run only those tests and examples matching the regular 
    expression. 
+13

यह ध्यान देने योग्य है कि पैकेज नाम पूरा पैकेज नाम है, उदाहरण के लिए "github.com/you/stuff/a/b/c" – garbagecollector

+0

1.9.3 स्वीकार करता है पैकेज के सापेक्ष पथ भी। – Amit

3
IntelliJ विचार में

जाना-लैंग प्लगइन (और मैं JetBrains Gogland में मान) तुम सिर्फ रन के तहत दायर करने के लिए परीक्षण तरह सेट कर सकते हैं> विन्यास

screenshot create go test on go file

+1

गोगलैंड में आप बस परीक्षण फ़ाइल पर राइट क्लिक कर सकते हैं और "foo_test.go चलाएं" चुनें, यह परीक्षण के साथ पैकेज का निर्माण करेगा और फिर उस टेस्ट फ़ाइल में सभी परीक्षणों के नाम वाले रेगेक्स को -रुन ध्वज में पास करेगा। वास्तव में उपयोगी सुविधा। – Eloff

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