0

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

我正在使用 rails 3.2.8 并使用 minitest/capybara/poltergeist 进行测试。到现在为止,一切都很顺利。我总是可以测试我的javascript东西。

对于一个新项目,我下载了 rails 4 来稍微了解一下。而且由于 minitest 将成为测试框架,我认为这很容易。不是。说实话,在设置​​所有东西时,我不是英雄。我只是跟随瑞恩贝茨。在大量添加、删除和更新大量 gem 之后,我认为继续使用 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 `it':参数数量错误(2对于 1) (参数错误)

因为这

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 的东西,这个宝贝跟着我进入了一个新的测试套件。我努力在谷歌上找到答案,但我找不到任何答案。我的其他 rails 3.2.8 项目仍然测试良好,没有抱怨 javascript 参数。但是对于新应用程序:没有 javascript 测试。

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

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

卡斯帕

4

1 回答 1

1

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

于 2013-02-17T17:48:39.393 回答