2011-12-10 19 views
3

私はArubaで宝石をテストしています。私の問題は、たとえ私がbinディレクトリに何も持っていなくても、私が実行可能ファイルを実行するときにステップが渡っていることです。 ここにシナリオがあります。Ruby gem CLIテストwith Aruba

Scenario: Send SMS 
    When I run `serialsms` 
    Then message should be sent 

機能/サポート/ env.rb

$LOAD_PATH.push File.join(File.dirname(__FILE__), "/../../lib") 
ENV['PATH'] = "#{File.expand_path(File.dirname(__FILE__) + '/../../bin')}#{File::PATH_SEPARATOR}#{ENV['PATH']}" 
require 'serial_sms' 
require 'aruba/cucumber' 

キュウリ出力

Scenario: Send SMS   # features/send_sms_cli.feature:7 
    When I run `serialsms`  # aruba-0.4.9/lib/aruba/cucumber.rb:56 
    Then message should be sent # features/send_sms_cli.feature:9 

1 scenario (1 undefined) 
2 steps (1 undefined, 1 passed) 
0m0.123s 

You can implement step definitions for undefined steps with these snippets: 

Then /^message should be sent$/ do 
    pending # express the regexp above with the code you wish you had 
end 

これはアルバの正常な動作ですか私が何か間違ったことをしています。

答えて

3

機能の定義の前に@announceフックを追加すると、アルバが何をしているかについてのいくつかの拡張情報を得ることができます。

特にarubaは、自分自身のためにtmpディレクトリを作成し、ソースをコピーするなど、多くのファンキーなことを行いますが、それはあなたの問題ではないかもしれません。

IIRC

When I run "foo" 

ためのステップの定義は、それが主張するかの照合プログラムはありません失敗するものではありません。あなたが失敗したテストを取得する

Then it should pass .... 

のようなもので、それに従ってくださいする必要があります(チェックが終了コードのために、物事はSTD(OUTに送る| ERR)など)