2012-02-15 30 views
5

Trong nỗ lực sử dụng Cucumber cho tập lệnh dòng lệnh, tôi đã cài đặt đá quý aruba theo hướng dẫn được cung cấp. Đó là trong Gemfile của tôi, tôi có thể xác minh rằng đúng phiên bản được cài đặt và tôi đã bao gồmKiểm tra đầu ra từ "lệnh" có chứa sự cố không mong muốn với NilClass

require 'aruba/cucumber' 

trong 'tính năng/env.rb'

Để đảm bảo nó hoạt động, tôi đã viết kịch bản sau đây :

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

giả định điều này sẽ không thành công.

Nó thất bại, nhưng nó thất bại vì những lý do sai:

@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"' 

Bất cứ ai có bất cứ ý tưởng tại sao điều này không hoạt động? Điều này có vẻ là hành vi aruba rất cơ bản.

Trả lời

8

Bạn đang thiếu bước 'Khi' - đầu ra aruba "phải chứa" bước yêu cầu lệnh đã chạy (nó không tự chạy nó, nó chỉ tìm kiếm nó).

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

này tạo ra, trên máy tính của tôi:

@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

Cảm ơn bạn. Tôi đã giả định rằng các bước 'đầu ra từ "ls -la" nên chứa "drw"' cũng chạy lệnh. Nhưng dường như nó không. Tách hai thành hai bước riêng biệt đã làm các trick. – Agazoom

+0

nếu bạn không ngại chấp nhận câu trả lời, trong trường hợp đó, tôi sẽ đánh giá cao :-) – checkorbored

+0

Xong. Xin lỗi ... kinda mới với điều stackoverflow này. :-) – Agazoom

Các vấn đề liên quan