2011-10-12 20 views
10

मैं पहले (: सभी) विधि के दौरान एक परीक्षण समूह का नाम (और वंश) प्रदर्शित करने में सक्षम होना चाहता हूं:मैं पहले (rspec) में मेटाडेटा कैसे एक्सेस कर सकता हूं?

describe "My awesome app" do 
    before(:all) do 
    puts running_example_group.metadata[:full_description] # <- what I'm imagining 
    ... 
    done 
    ... 
    describe "awesome widget" do 
    before (:all) do 
     puts running_example_group.metadata[:full_description] # <- what I'm imagining 
     ... 
    done 
    ... 
    done 
done 

विचार यह है कि आउटपुट उत्पन्न करेगा:

My awesome app 
My awesome app awesome widget 

यह डेटा "इसे" खंडों के अंदर उपलब्ध है, लेकिन मैं इसे पहले (: सभी) के लिए नहीं समझ सकता। क्या यह उपलब्ध नहीं है? क्या मैं सिर्फ एक गूंगा गलती कर रहा हूँ?

+0

https://github.com/rspec/rspec-core/issues/6 सुझाव दे सकता है कि कार्यक्षमता मौजूद नहीं है? या शायद पहले मेटाडेटा सेट करना (: सभी) अक्षम था? –

उत्तर

9

before(:all) ब्लॉक के अंदर, कोई "चल रहा उदाहरण" नहीं है, लेकिन आप अभी भी RSpec::Core::ExampleGroup के माध्यम से मेटाडेटा तक पहुंच सकते हैं। यहाँ कैसे आप विभिन्न कार्यक्षेत्रों से मेटाडाटा का उपयोग कर सकते का एक उदाहरण है:

describe "My app", js: true do 

    context "with js set to #{metadata[:js]}" do 
    before :all do 
     puts "in before block: js is set to #{self.class.metadata[:js]}" 
    end 

    it "works" do 
     puts "in example: js is set to #{example.metadata[:js]}" 
    end 
    end 

end 

अधिक जानकारी के लिए कृपया this comment in rspec/rspec-core#42 पर एक नज़र डालें।

+0

कूल। मैं अपने वर्तमान प्रोजेक्ट पर rspec का उपयोग नहीं कर रहा हूं, इसलिए यदि कोई और उनके लिए इस काम की पुष्टि कर सकता है तो मैं जवाब स्वीकार करूंगा। –

+0

या ...;) आप बस उदाहरण को सहेज सकते हैं, 'gem install rspec' चलाएं और' rspec example_spec.rb' के माध्यम से spec निष्पादित करें। – rubiii

+0

हां! मै कोशिश करुॅगा। मुझे उस पर स्थापित रूबी के साथ एक कंप्यूटर पकड़ने की आवश्यकता होगी, लेकिन मुझे लगता है कि मेरे पास एक है। अगर मैं अपने पर्यावरण के साथ फटकार कर रहा हूं तो मैं हार सकता हूं। =) –

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

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