RubyフレームワークのHanamiでRepositoryの挙動をminitestでテストしてもユニークじゃないよと怒られた。migrationファイル見たら、カラムがユニークだったため(unique: true)、それを削除してbundle exec hanami db prepareしたが、やはりユニークじゃないと怒られた。
エラーメッセージ
TnoteNoteRepository#test_0001_associations are successful:
Hanami::Model::UniqueConstraintViolationError: SQLite3::ConstraintException: UNIQUE constraint failed: tnote_streams.tnote_note_id
↑「tnote_note_id」というカラムがユニーク設定になっているのに、値が重複したレコードを追加してるよ、的な意図のメッセージ
原因
minitest実行はtest環境で実行されるが、db prepareでdevelopment環境しかDB更新していなかったため。test環境もdb prepare(コマンド:HANAMI_ENV=test bundle exec hanami db prepare)することで解決。
Written with StackEdit.