0

ミニテストとカピバラで奇妙な問題が発生しました。

私はレール3.2.8を使用しており、minitest / capybara/poltergeistでテストしています。今まではすべてうまくいきました。私はいつもJavaScriptのものをテストすることができました。

新しいプロジェクトでは、Rails4をダウンロードして少し説明しました。ミニテストはテストフレームワークになるので、簡単だと思いました。そうではありませんでした。正直なところ、すべてのものをセットアップすることに関しては、私はヒーローではありません。ライアン・ベイツをフォローしています。たくさんのgemを追加、削除、更新した後、Rails4を使い続ける価値はないと判断しました。統合テストで溝に入るのに非常に多くの問題がありました。私が知っていたものはすべて期待どおりに機能しませんでした。私が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 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のものだと思ったので、この赤ちゃんはすぐに新しいテストスイートに私を追いかけました。グーグルで一生懸命答えを見つけようとしましたが、見つかりません。私の他のRails3.2.8プロジェクトはまだ正常にテストされており、javascript引数について文句はありません。しかし、新しいアプリでは、JavaScriptのテストはありません。

私はここで途方に暮れています。これがどこから来ているのかわかりません。私の他の3.2.8アプリはまだ正常に動作しているので、おそらく更新されたgemバージョンと関係がありますか?誰かがこのエラーメッセージを見たことがありますか?エラーメッセージの190行目からいくつかのminitestバージョンについて、不平を言っているminitest / spec.rbファイルを確認しましたが、it-methodで何も変更されていません。

何が悪いのかについて何か手がかりがあれば、何か(Gemfile?test_helper.rb?)を見たいかどうか教えてください。前もって感謝します!

キャスパー

4

1 に答える 1

1

Minitestの仕様DSLは、それがブロックする2番目のパラメーターを受け入れません。minitest-metadata gemは、2番目の引数のサポートを追加します。この例は、それを使用するようにCapybaraを構成する方法を示しています。おそらく、既存のプロジェクトはminitest-metadataを使用し、それを使用してCapybaraを構成しますが、新しいプロジェクトは使用しませんか?

于 2013-02-17T17:48:39.393 に答える