0

これは説明が非常に難しく、トラブルシューティングの方法がわかりません。

すべてのテストを 1 回で実行すると、毎回同じ 2 つのテストが失敗します。ただし、各ブロックを個別に実行するfocus: trueと、成功します。また、同じ方法を使用して手動でテストを追加すると、テストが完了するまで成功します。 5つのテストに到達します。

これには韻も理由も、実際には論理もありません。スレッド/変数の問題があるかどうかを確認するために、空のテストを具体的に追加しましたが、それでも失敗します。意味がありません。

さらに悪いことに、実際には 1/20 のテストがパスします。

  • Rails4、Zeus (なしで試しました)、および Guard (なしで試しました) を使用する
  • データベースクリーナーを使用して、各ブロックの後にテーブルを切り捨てています
  • モデルも実行ごとに再作成されることを確認しました

私は次の(簡略化されたコード)を持っています。違いはないようですが。

before(:each) do
  @location = FactoryGirl.create(:location_full)
  @location.generate_defaults ## usually in a callback
  @mac = 'Some var'
end

it "checks the location's access is updated to var 1", focus: true do
  @location.update(bar: true)
  var = @location.generate_something(mac: @mac)
  var[:xyz].should eq 123
end    

...

it "checks the location's access is updated to var 2", focus: true do
  @location.update(bar: false)
  var2 = @location.generate_something(mac: @mac)
  var2[:xyz].should eq 456
end    

...

it "is a dummy test", focus: true do
  # nothing
end

テストは失敗します!

メモリに保持されているものだと思ったので、それぞれの前にすべてのレコードを破棄しようとさえしました。スリープ、レコードのリロード、データベースの変更を試みました。

以前は、ActionController::Live を使用したコントローラー テストでスタックしていましたが、その後削除されました。

どこを見ればいいのか、何をすればいいのかわからない。どんな(賢明な)提案も歓迎します。これは RoR4 にアップグレードしてから発生していることに注意してください。

rails (4.0.0)
  actionmailer (= 4.0.0)
  actionpack (= 4.0.0)
  activerecord (= 4.0.0)
  activesupport (= 4.0.0)
  bundler (>= 1.3.0, < 2.0)
  railties (= 4.0.0)
  sprockets-rails (~> 2.0.0)

rspec (2.13.0)
  rspec-core (~> 2.13.0)
  rspec-expectations (~> 2.13.0)
  rspec-mocks (~> 2.13.0)

guard (1.8.2)
  formatador (>= 0.2.4)
  listen (>= 1.0.0)
  lumberjack (>= 1.0.2)
  pry (>= 0.9.10)
  thor (>= 0.14.6)

guard-rspec (3.0.2)
  guard (>= 1.8)
  rspec (~> 2.13)
4

0 に答える 0