我刚刚安装了aruba gem,它是黄瓜的延伸。它允许您测试命令行应用程序 - 比如Rails中的生成器(但是,正如文档所指出的,您可以将它用于任何cmd应用程序)。
我一直关注this pivotal labs article使用它,但由于某种原因,它没有超过第一步:第一步是绿色(创建应用程序),但下一步尝试{ {1}}无法找到并失败。
cd test_app
看起来实际上并没有创建应用程序文件夹,虽然查看基础目录我可以看到tmp / aruba / folding 是。在探索源头一段时间后,我无法想出任何原因。 有没有其他人有过这个宝石的经验并发现了同样的事情?
是否有任何不错的BDD替代方案来测试生成器或rake任务等?
进一步回答Ryans:
我将以下内容添加到Given I run "rails new test_app" # features/step_definitions/aruba_steps.rb:95
And I cd to "test_app" # features/step_definitions/aruba_steps.rb:91
tmp/aruba/test_app is not a directory. (RuntimeError)
./features/step_definitions/aruba_steps.rb:92:in `/^I cd to "([^"]*)"$/'
features/generators.feature:9:in `And I cd to "test_app"'
(从base rails目录开始):
features/support/env.rb
因此黄瓜正在构建当前rails应用程序的外部,这解决了这个问题。
答案 0 :(得分:2)
我最初的想法:我认为导致这种情况的原因是如果Rails不在你的包中。但你看起来像个聪明人,所以我试着复制你的例子,发现我得到了同样的东西。
困惑,我确定我得到了输出:
Scenario: title
Given I run "rails new test_app"
Then the output should contain:
"""
app/mailers
"""
And I cd to "test_app"
结果只是观察输出包含 app / mailers 这个过程有效。这是非常量子的,很可能是Aruba或Rails中的一个bug。我不确定哪个。