2016-01-20 14 views
6

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

+1

चेक बाहर [जिन्कगो] (https://onsi.github.io/ginkgo) जो 'BeforeEach' और' AfterEach'। – PieOhPah

+0

धन्यवाद @ pie-o-pah – psbits

उत्तर

6

यदि आप मानक गो परीक्षण उपकरण का उपयोग करना चाहते हैं, तो आप हस्ताक्षर TestMain(m *testing.M) के साथ एक फ़ंक्शन को परिभाषित कर सकते हैं और वहां अपना फ़िक्स्चर कोड डाल सकते हैं।

testing package wiki से:

यह कभी कभी आवश्यक है एक परीक्षण कार्यक्रम से पहले या परीक्षण के बाद अतिरिक्त सेटअप या टियरडाउन करने के लिए। मुख्य थ्रेड पर कौन सा कोड चलता है इसे नियंत्रित करने के लिए परीक्षण के लिए कभी-कभी भी आवश्यक होता है। इन और अन्य मामलों का समर्थन करने के लिए, अगर एक परीक्षण फ़ाइल एक समारोह में शामिल है:

func TestMain(m *testing.M)

तो उत्पन्न परीक्षण के बजाय परीक्षण सीधे चलाने का TestMain (एम) को कॉल करेंगे। टेस्टमेन मुख्य गोराउटिन में चलता है और एम.रुन के कॉल के आसपास जो भी सेटअप और टियरडाउन आवश्यक है, कर सकता है। इसके बाद एम.रुन के परिणाम के साथ ओ.एक्सिट को कॉल करना चाहिए। जब टेस्टमेन कहा जाता है, ध्वज। पर्स नहीं चलाया गया है। यदि टेस्टमेन परीक्षण पैकेज के साथ कमांड लाइन झंडे पर निर्भर करता है, तो इसे ध्वज कॉल करना चाहिए। स्पष्ट रूप से पर्स करें।

TestMain का एक सरल दिया गया है:

func TestMain(m *testing.M) { 
    flag.Parse() 
    os.Exit(m.Run()) 
} 
संबंधित मुद्दे