2012-02-15 3 views
5

कमांड लाइन स्क्रिप्ट के लिए ककड़ी का उपयोग करने के प्रयास में, मैंने दिए गए निर्देशों के अनुसार अरुबा मणि इंस्टॉल किया है। यह मेरी Gemfile में है, मैं पुष्टि कर सकते हैं कि सही संस्करण स्थापित किया गया है और मैं"कमांड" से आउटपुट की जांच में अनिलक्षित क्रैश होना चाहिए जिसमें NilClass

require 'aruba/cucumber' 

'सुविधाओं/env.rb' में शामिल किया है

आदेश यह काम करता है सुनिश्चित करने के लिए, मैं इस परिदृश्य पर लिखा था :

@announce 
Scenario: Testing cucumber/aruba 
    Given a blank slate 
Then the output from "ls -la" should contain "drw" 

मानते हुए कि यह चीज़ विफल होनी चाहिए।

यह असफल है, लेकिन इसे गलत कारणों के लिए विफल रहता है:

@announce 
Scenario: Testing cucumber/aruba     
    Given a blank slate       
    Then the output from "ls -la" should contain "drw" 
     You have a nil object when you didn't expect it! 
     You might have expected an instance of Array. 
     The error occurred while evaluating nil.[] (NoMethodError) 
     features/dataloader.feature:9:in `Then the output from "ls -la" should contain "drw"' 

किसी को भी किसी भी विचार क्यों यह काम नहीं कर रहा है? यह बहुत ही बुनियादी अरुबा व्यवहार प्रतीत होता है।

उत्तर

8

आप 'कब' चरण खो रहे हैं - अरुबा "आउटपुट में होना चाहिए" चरण को कमांड पहले से चलने की आवश्यकता है (यह इसे स्वयं नहीं चलाता है, यह केवल इसे देखता है)।

@announce 
Scenario: Testing cucumber/aruba 
    Given a blank slate 
    When I run `ls -la` 
    Then the output from "ls -la" should contain "drw" 

यह पैदा करता है मेरी मशीन पर:

@announce 
Scenario: Testing cucumber/aruba      # features/test_aruba.feature:8 
    When I run `ls -la`        # aruba-0.4.11/lib/aruba/cucumber.rb:56 
     $ cd /Users/d.chetlin/dev/mine/ladder/tmp/aruba 
     $ ls -la 
     total 0 
     drwx------ 2 d.chetlin staff 68 Feb 15 23:38 . 
     drwx------ 7 d.chetlin staff 238 Feb 15 23:38 .. 

    Then the output from "ls -la" should contain "drw" # aruba-0.4.11/lib/aruba/cucumber.rb:86 

1 scenario (1 passed) 
2 steps (2 passed) 
0m0.465s 
+0

धन्यवाद। मैंने माना था कि "ls -la" से "आउटपुट" चरण में "ड्रू" होना चाहिए, यह भी आदेश चलाया। लेकिन जाहिर है यह नहीं है। दोनों को दो अलग-अलग चरणों में अलग करने से चाल चल रही थी। – Agazoom

+0

यदि आप उत्तर स्वीकार करने पर ध्यान नहीं देंगे, तो उस मामले में, मैं सराहना करता हूं :-) – checkorbored

+0

हो गया। क्षमा करें ... इस stackoverflow बात के लिए थोड़े नए। :-) – Agazoom

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