使用しているレガシーデータベースが原因で、MyISAMを使用しているMySQLでスタックしています。つまり、テーブルはトランザクションをサポートしていません。テストによって生成されたテーブルデータ(フィクスチャにfactory_girlを使用しています)はシナリオごとに戻されないため、これによりテストが失敗します。
Rspecがspec_helper.rbの構成設定を公開していることを発見しconfig.use_transactional_fixtures
ました。
これはデフォルトでtrueに設定されています。falseに設定すると、テストへの影響は見られません。レコードが重複しているため、まだ失敗します。
その設定は、DBに加えられた変更を自動的に展開することになっているのではないですか?それとも私はそれを手動で行うことになっていますか?