我在用阿鲁巴测试宝石。我的问题是,即使在bin目录中没有任何内容,运行“executable”时的步骤也是通过的。
这是场景。

  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

这是阿鲁巴的正常行为还是我做错了什么?

最佳答案

如果在特性定义之前添加@announce钩子,您可以获得关于aruba正在做什么的一些扩展信息。
特别是aruba在为自己创建tmp目录、复制源代码等方面做了很多有趣的事情,但是这可能不是你的问题。
IIRC的步骤定义

When I run "foo"

不是一个会失败,它没有断言或匹配者。你得跟着它走
Then it should pass ....

要获得失败的测试(检查退出代码、发送到std(out err)的东西等)

关于ruby - 使用Aruba进行Ruby gem CLI测试,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8454826/

10-12 02:51