2013-05-03 9 views
61

go test कमांड केवल एक डीआईआर में *_test.go फ़ाइलों को शामिल करता है।मेरी परियोजना में सभी परीक्षणों का परीक्षण कैसे करें?

मैं पूरी परियोजना, जिसका अर्थ है परीक्षण dir ./ और dir ./ के तहत हर chindren पेड़ dir में सभी *_test.go फ़ाइलों को शामिल करना चाहिए go test करना चाहते हैं।

ऐसा करने का आदेश क्या है?

उत्तर

126

यह मौजूदा निर्देशिका में सभी परीक्षणों और उसकी उप-के सभी चलाना चाहिए:

$ go test foo/... 

यह सभी परीक्षणों आयात चलाना चाहिए:

$ go test ./... 

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

$ go test foo... 

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

$ go test ... 
+3

zsh में FYI, पिछले उदाहरण में बेयर '...' से बच जाना चाहिए, आईई 'परीक्षण करें \ ... ' –

37

From Go 1.9 onwards, का उपयोग

go test ./... 

जाओ 1.6 में 1.8 के माध्यम से, ./... भी vendor directory मिलान नहीं हुआ। vendored संकुल छोड़ने के लिए, आप उपयोग करेंगे

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, @ nickgrim की टिप्पणी।

+1

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

+0

अच्छा बिंदु और मेरी समस्या का उत्तर – Sion

+2

वर्थ इंगित करता है कि [जाओ 1.9] (https://golang.org/doc/go1.9#vendor-dotdotdot) '।/... अब मेल नहीं खाता '/ विक्रेता /' निर्देशिका, ताकि आप अपने सभी परीक्षणों को चला सकें और 'परीक्षण परीक्षा' के साथ विक्रेता-परीक्षणों में से कोई भी नहीं चला सकें। – nickgrim

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