2015-02-03 3 views
3

루비 명령 줄 스크립트를 테스트하려고하는데 RSpec 3의 Cucumber-less Aruba로 테스트를 실행하는 데 문제가 있습니다.Aruba가 RSpec 3과 함께 작동하지 않습니까?

이상한 오류가 있습니다.

괴상한 :

1) test does something 
    Failure/Error: run_simple("cli_test.rb -h", true) 
    ArgumentError: 
    wrong number of arguments (2 for 1) 
# .../.gem/ruby/2.2.0/gems/aruba-0.6.2/lib/aruba/api.rb:632:in `assert_exit_status' 
# .../.gem/ruby/2.2.0/gems/aruba-0.6.2/lib/aruba/api.rb:750:in `run_simple' 
# ./spec/cli_test_spec.rb:17:in `block (2 levels) in <top (required)>' 

코드를 보면 나는 이것이 무엇을 유발하는지 보지 못합니다. Pry 또는 Pry-byebug를 사용하여 잘못된 2 개의 인수를 체크하려고 시도하는 중 (다른 많은 오류가 있음).

. 분명 여기

1) test does something 
    Failure/Error: check_file_presence(["bin/cli_test.rb"], true) 
    only the `receive` or `receive_messages` matchers are supported with 
    `expect(...).to`, but you have provided: 
    #<RSpec::Matchers::BuiltIn::BePredicate:0x007fb36c88d6b0> 
# ... error lines ... 

&, 오류 아루바는 RSpec에이 구문을 사용하고, 분명히 정확합니다.

그래서 난 내 RSpec에 설정에
config.expect_with :rspec do |c| 
    c.syntax = [:should, :expect] 
end 

을 추가,하지만 여전히 작동하지 않습니다.

아이디어가 있으십니까? 팁? 이 작업의 예가 어디에서나 가능합니까?

미리 감사드립니다.

답변

0

RSpec 2에 대한 예제를 사용하여 약간의 충돌이 있습니다. 특히 aruba\api이 필요하고 많은 경우 포함/연장 선을 망칠 경우.

아루바 작동을위한 가장 작은 예입니다. PATH 환경 등을 사용하여 구성을 미세 조정할 수 있습니다.

require 'aruba/rspec' 

describe "Ruba example", :type => :aruba do 
    it 'shows root content' do 
    run 'ls /' 
    expect(all_stdout).to include('tmp') 
    expect(all_stdout).to include('var') 
    expect(all_stdout).to include('usr') 
    end 
end