我对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?)。提前谢谢!
卡斯帕
答案 0 :(得分:1)
Minitest的规范DSL不接受其阻止的第二个参数。 minitest-metadata gem添加了对第二个参数的支持,该示例显示了如何配置Capybara以使用它。也许您现有的项目使用minitest元数据并使用它配置Capybara,而您的新项目却没有?