मेरी परियोजना में सभी परीक्षण कैसे करें?


141

go testआदेश को शामिल किया गया *_test.goकेवल एक निर्देशिका में फाइल।

मैं go testपूरे प्रोजेक्ट को चाहता हूं , जिसका मतलब है कि परीक्षण को *_test.goडीआईआर में सभी फाइलों को कवर करना चाहिए./ और प्रत्येक चिर्रेन के पेड़ को डायर के नीचे./

ऐसा करने की आज्ञा क्या है?

जवाबों:


278

यह वर्तमान निर्देशिका में और इसके सभी उपनिर्देशिकाओं में सभी परीक्षण चलाने चाहिए:

$ go test ./...

यह दिए गए विशिष्ट निर्देशिकाओं के लिए सभी परीक्षण चलाने चाहिए:

$ go test ./tests/... ./unit-tests/... ./my-packages/...

यह सभी परीक्षण आयात पथ के साथ चलना चाहिए foo/:

$ go test foo/...

इसके साथ उपसर्ग किए गए सभी परीक्षण आयात पथ चलाने चाहिए foo:

$ go test foo...

यह आपके $ GOPATH में सभी परीक्षण चलाने चाहिए:

$ go test ...

4
FYI करें zsh ...में, आखिरी उदाहरण में नंगे बच जाना चाहिए, IEgo test \...
गैब कोपले

जब मैं सबडिर में सभी परीक्षण चलाने की कोशिश कर रहा हूं तो मुझे मिल रहा हैgo: warning: "subdir/..." matched no packages
इवान एरेकी

@zzzz कैसे विशिष्ट फ़ोल्डर के लिए परीक्षण चलाने के लिए? "गो टेस्ट फू ... बार ...?
ओमुरबे कादिरबकोव

go test ./...वास्तव में एक महान आदेश है!। मदद करने के लिए धन्यवाद :)
भौंरा

53

जाओ 1.9 के बाद से , का उपयोग करें

go test ./...

1.8 के माध्यम से गो 1.6 में, निर्देशिका./... से भी मेल खाता है । प्रतिशोधित पैकेजों को छोड़ने के लिए, आप उपयोग करेंगेvendor

go test $(go list ./... | grep -v /vendor/)

स्रोत: https://github.com/golang/go/issues/11659 , https://github.com/golang/go/issues/14417 , https://github.com/go-lang-plugin-org/ go-lang-idea-plugin / issues / 2366 , @ nicgrim की टिप्पणी।


1
यह समाधान जितना आसान दिखता है, इसे चलाने के लिए यह विंडोज पर लोगों के लिए बहुत अधिक जटिल है (मैं नहीं बल्कि मेरी टीम के कुछ साथी हैं)। Makefile की आवश्यकता के बिना प्रत्येक प्लेटफ़ॉर्म पर जाने वाले मूल निवासी गो की सुंदरता महान है।
कोनराड क्लेन

5
वर की ओर इशारा करते हुए कहा गया है कि Go 1.9 के रूप में ./... अब ./vendor/निर्देशिका से मेल नहीं खाता है , इसलिए आप अपने सभी परीक्षणों को चला सकते हैं और कोई भी विक्रेता-परीक्षण नहीं कर सकतेgo test ./...
nicgrim

11

फ़ोल्डर संरचना

ProjectName/folderName1/file_test.go
ProjectName/folderName2/file1_test.go
ProjectName/folderName3/file2_test.go

go कमांड कमांड

   ProjectName$ go test -v ./...
    ProjectName$ go test  ./...
    ProjectName$ go test -cover ./...

संपूर्ण परियोजना के लिए कवरेज रिपोर्ट

ok      ProjectName/folderName1 10%
ok      ProjectName/folerName2  90%
ok      ProjectName/folerName2  85%
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.