플러그인의 rspec 테스트를 실행할 수 없습니다

stable 브랜치를 대상으로 개발 중인데, 백엔드 테스트를 더 이상 실행할 수 없게 된 것을 방금 발견했습니다. 제 테스트뿐만 아니라 표준 플러그인의 테스트도 모두 동일한 이유로 오류가 발생합니다.

$ bin/rspec plugins/discourse-subscriptions/
Detected plugin spec path, setting LOAD_PLUGINS to 1

An error occurred while loading rails_helper.
Failure/Error: SeedFu.seed

RuntimeError:
  Undeclared attribute type for enum 'chat_email_frequency' in UserOption. Enums must be backed by a database column or declared with an explicit type via `attribute`.
# ./spec/rails_helper.rb:139:in `<top (required)>'
No examples found.


Finished in 0.00004 seconds (files took 3.45 seconds to load)
0 examples, 0 failures, 1 error occurred outside of examples

새로운 플러그인을 위한 프론트엔드 작업으로 바빴기 때문에 로컬에서 테스트를 실행한 지 꽤 시간이 흘렀습니다. 그래서 언제 깨졌는지 눈치채지 못했습니다. discourse의 임의의 테스트를 실행할 때는 문제가 발생하지 않습니다.

오류 메시지에 따르면 테스트 데이터베이스에서 컬럼이 누락된 것 같습니다. 실제로 확인해 보니 해당 컬럼이 없습니다. 테스트 데이터베이스를 다시 구축하기 위해 RAILS_ENV=test bin/rails db:migrate:reset을 이미 실행했지만 결과는 동일합니다.

chat 플러그인의 일부 마이그레이션이 포함되지 않은 것처럼 보입니다. 하지만 그 이유를 파악할 수 없습니다.

개발 데이터베이스에는 해당 컬럼이 존재합니다.

테스트 DB에서 플러그인 마이그레이션이 로드되지 않는 것 같습니다. 다음을 실행해 보세요:

RAILS_ENV=test LOAD_PLUGINS=1 bin/rails db:migrate

이렇게 하면 플러그인 마이그레이션이 테스트 데이터베이스에 적용됩니다. 이 문제는 다음에서 논의된 내용과 일치합니다:

아! 바로 그거였어. 셸 히스토리를 확인해봤으면 좋았을걸.