플러그인 테스트가 "undefined method `test_transaction='" 오류로 실패합니다

지난해 플러그인을 만들었고, 최신 버전의 Discourse에서 여전히 정상 작동하는지 확인하고 싶었습니다. 개발 환경을 다시 초기화한 후(데이터베이스 마이그레이션 문제가 있었음) 플러그인이 여전히 작동하는 것을 수동으로 확인했습니다. 그러나 스펙 테스트(작년 작성 시 통과했던 테스트)를 실행하면 다음과 같은 오류가 발생합니다:

Failure/Error: DB.test_transaction = ActiveRecord::Base.connection.current_transaction
      
      NoMethodError:
        undefined method `test_transaction=' for #<MiniSqlMultisiteConnection:0x00007fb8b3815c40>

또한 Discourse Footnote 을 로컬에 설치해 두었는데, 해당 테스트를 실행할 때 동일한 오류가 발생합니다.

현재 버전의 Discourse에서 테스트가 통과하도록 환경을 수정하거나 테스트를 수정하는 방법에 대해 조언해 주실 수 있으신가요?

테스트를 실행하는 데 어떤 명령어를 사용했나요?

discourse 소스 디렉터리에서 bin/rspec를 실행할 때 LOAD_PLUGINS=1을 반드시 포함해야 합니다(플러그인 저장소가 plugins/ 폴더에서 심볼릭 링크로 연결되어 있어야 함).

discourse 디렉터리에서 다음 명령어를 실행 중입니다:

d/rake plugin:spec['discourse-ruby']

@riking 저는 LOAD_PLUGINS=1을 명시적으로 포함하지 않고 있지만, 어쨌든 그렇게 되는 것 같습니다(plugin:spec을 실행하고 있기 때문이라고 추측합니다). 명령어를 실행한 후 첫 번째 줄은 다음과 같습니다:

LOAD_PLUGINS=1 /usr/local/bin/ruby -S rspec ./plugins/discourse-ruby/spec/markdown_ruby_spec.rb --profile

아래와 같이 명시적으로 포함하면 동일한 오류가 발생합니다:

d/rake plugin:spec['discourse-ruby'] LOAD_PLUGINS=1

d/rake 스크립트는 기본적으로 development 환경을 기본값으로 사용하도록 설정되어 있으므로, 대신 다음을 실행해야 합니다: RAILS_ENV=test d/rake plugin:spec['discourse-ruby']

이 방법으로 해결되었습니다. 감사합니다!