DiscourseRedis::Connector のテスト実行中の失敗についてご助力をお願いします

ここ数日、ローカルでテストを実行しようとすると、次のエラーが発生します。

$ bundle exec rake autospec

...

./spec/components/discourse_redis_spec.rb の読み込み中にエラーが発生しました。
Failure/Error:
    describe DiscourseRedis::Connector do
      let(:connector) { DiscourseRedis::Connector.new(config) }
  
      after do
        fallback_handler.master = true
      end
  
      it 'should return the master config when master is up' do
        expect(connector.resolve).to eq(config)
      end

NameError:
  uninitialized constant DiscourseRedis::Connector
  Did you mean?  ConnectionPool

システムがテストを実行できなくなった原因として、誤って変更してしまった可能性のある項目は思い当たりません。Redis は確実に動作しているため、Redis が停止していることが原因ではありません。

tests-passed ブランチのクリーンなチェックアウトでテストを実行しても同じエラーが発生します。これは環境に関する問題のようですが、どこから調査すべきか見当がつきません。

何か提案はありますか?

壊れた仕様がチェックインされてしまったようです。このコミットで壊れた仕様を無効にしました:

ただし、以下の2つの後続タスクがあります:

  1. 壊れた仕様の修正
  2. 今後、これらが再びチェックインされないようにする

ご確認ありがとうございます!壊れた仕様(specs)が tests-passed に到達したのは、断続的な問題が原因でしょうか?

プルして、ac9577bcc7b69593bcdd204368d35492fc0cee15 でローカル環境を確認しましたが、全く同じエラーが発生しています。おそらく複数の問題が絡んでいるのでしょう。:confused:

ごめん、私のミス。プッシュするのを忘れてた :facepalm: 前の投稿を正しいコミットに更新しました。

はい、これはテストが失敗しているにもかかわらず「テスト通過」と表示されたことを意味します。幸いなことに、Discourse 自体に問題はありません。バグがあるわけではなく、テスト自体の更新が必要です。とはいえ、今後はこのようなことが起こらないようにします。

やった!テストが順調に実行されています。

以前に確認しなかったことをお詫びします。私はメインストリームから外れた Discourse 開発者であることを理解しています。Fedora で作業しており、Ubuntu ではないため、私の環境に特有の違いがあるという偏見を持っていました。テストを実行できるようになっていただき、ありがとうございます!

commit 25db91e35180b2707ca4a9f7ffd173823f86f18d によるあなたへのリバージョンで、それらのテストを無効化することについて意見の相違があるのですね。

ただし、問題の修正が続いているからという理由ではありません。私は d775338d637d9ef3843acf227a138e8f11352151(master)でテストしましたが、pull した時点ではテストはパスしていたものの、問題が再発しています。

少なくとも、ローカルでテストをパスさせることはできましたし、migrate スクリプトに実装した新しい安全メカニズムに対処するために、以前とどのように異なる対応が必要かを確認することができました。

@tgxworld 競合の解決方針はどのようなものですか?一時的に、b1114b9a20343525c805d7339bd64954965a12f9 を自分のブランチのベースに cherry-pick して、その間テストを行うことはできますか?

テストは削除される予定でしたが、CI にエラーが発生しても失敗しないというバグがあったため、見落としていました。これは以下のコミットで修正されています。