it-block不再接受额外的javascript参数

时间:2013-02-15 20:58:28

标签: ruby-on-rails capybara minitest specifications

我对minitest和水豚有一个奇怪的问题。

我正在使用rails 3.2.8并使用minitest / capybara / poltergeist进行测试。到现在为止每个人都很好。我总是可以测试我的javascript东西。

对于一个新项目,我下载了rails 4以进入它。由于minitest将成为测试框架,我认为这很容易。它不是。说实话,在设置​​所有东西时我不是英雄。我跟随瑞安贝茨。在经过大量添加和删除以及更新大量宝石之后,我认为不值得继续使用Rails 4.我在集成测试中遇到了很多问题。我所知道的所有东西都没有按预期工作。当几乎一切工作直到我想测试一个javascript的东西时,斧头掉了下来。我收到了这个错误:

.rbenv / versions / 1.9.3-p194 / lib / ruby​​ / gems / 1.9.1 / gems / minitest-4.6.1 / lib / minitest / spec.rb:190:in the it:错误的数字arguments(2 for 1)(ArgumentError)

因为这个

describe "blabla" do
  it "does not do what i want it to do", js: true do
    pending
  end
end

它不会接受js:true参数。有趣的是,describe块将接受js:true参数。

当我回到Rails 3.2.8时,因为我认为这是一个Rails 4的事情,这个婴儿跟着我进入了一个新的测试套件。我努力在Google上找到答案,但我找不到任何答案。我的其他rails 3.2.8项目仍然测试正常,没有抱怨javascript参数。但是使用新的应用程序:没有javascript测试。

我在这里不知所措。我不知道这是从哪里来的。由于我的其他3.2.8应用程序仍然可以正常工作,它可能与更新的宝石版本有关吗?有没有人看过这个错误信息?我检查了几个最小版本的错误消息第190行中抱怨的minitest / spec.rb文件,并且在it方法中没有任何改变。

如果您想查看可能出错的任何线索,请告诉我是否要查看内容(Gemfile?test_helper.rb?)。提前谢谢!

卡斯帕

1 个答案:

答案 0 :(得分:1)

Minitest的规范DSL不接受其阻止的第二个参数。 minitest-metadata gem添加了对第二个参数的支持,该示例显示了如何配置Capybara以使用它。也许您现有的项目使用minitest元数据并使用它配置Capybara,而您的新项目却没有?