rspec テストがたくさんありますが、そのうち約 30 はカピバラ/ポルターガイストによるヘッドレス テストです。テストをローカルで実行するたびに、すべてのテストが 100% 成功します。
最近、teamcity 継続的インテグレーション サーバーをセットアップしましたが、テスト結果は非常に一貫性がありませんでした。
テスト間で何も変更せずに、テストを 10 回実行しました。100% パスしたラウンドは 1 つだけでした。他のものには 1 ~ 2 回の失敗があり (ほとんどは同じではありませんでした)、すべてヘッドレス ブラウザーのテストに関連していました。失敗例の 1 つを次に示します。
ActionView::Template::Error: Couldn't find Spree::Address with id=1072978592
Stack trace:
./app/models/spree/order_decorator.rb:50:in `initialize_default_address'
./app/models/spree/order_decorator.rb:42:in `initialize_shipment'
./app/views/layouts/core.html.erb:23:in `_8cb98e121af585621c1d08e3ec1f6022'
./app/views/layouts/default.html.erb:14:in `_588b3208edc213a939dffd2ad73f4f26'
ID を使用してアドレスを検索し、factorygirl モデルを返す関数をスタブ化したため、この失敗は奇妙です。ローカルではこの問題はありません。
テスト実行の 1 つからの別のエラーを次に示します。
Capybara::ExpectationNotMet: expected to find link "10" but there were no matches
Stack trace:
./spec/features/simply_ship_spec.rb:102:in `block (2 levels) in <top (required)>'
繰り返しますが、これをローカルで実行すると、このエラーは発生しません。セレンに切り替えてテストを見ると、リンクは明らかにそこにあります。
これらのエラー (すべてではありませんが、いくつかの例) は、プロジェクトを更新することなく、異なる実行で個別に発生しました。なぜこれが起こっているのか誰にも考えがありますか?
rspec-rails 2.14.0 カピバラ 2.1 ポルターガイスト 1.3.0 レール 3.2.14 ルビー 1.9.3 p448