我正在用Aruba测试宝石。我的问题是,即使我在bin目录中没有任何内容,当我运行“可执行文件”时,该步骤正在传递。 这是场景。
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
这是Aruba的正常行为还是我做错了什么。
答案 0 :(得分:3)
如果您在功能定义之前添加@announce
挂钩,则可以获得有关aruba正在执行的操作的扩展信息。
特别是aruba做了很多时髦的事情,为自己创建一个tmp目录,复制你的来源等等。但这可能不是你的问题。
IIRC
的步骤定义When I run "foo"
不会失败,它没有断言或匹配。您需要使用
之类的内容Then it should pass ....
获得失败的测试(检查退出代码,发送到STD(OUT | ERR)的东西等)。