请求帮助解决 DiscourseRedis::Connector 运行测试时失败的问题

过去几天,当我尝试在本地运行测试时,一直出现以下错误:

$ bundle exec rake autospec

...

在加载 ./spec/components/discourse_redis_spec.rb 时发生错误。
失败原因:
    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:
  未初始化的常量 DiscourseRedis::Connector
  可能的意思是:ConnectionPool

我不清楚自己可能无意中做了哪些更改,导致系统无法再运行测试。Redis 肯定正在运行,所以这不是 Redis 未运行导致的副作用。

即使在 tests-passed 的干净检出版本上运行测试也会出现此错误,因此问题出在我的环境上,但我不确定该从哪里入手排查。

有什么建议吗?

看起来我们不小心提交了有问题的测试规范。我已在以下提交中禁用了这些有问题的测试规范:

但我们需要跟进以下两项工作:

  1. 修复有问题的测试规范
  2. 确保今后不会再提交此类问题。

感谢查看!这些失败的规范是因为间歇性问题而进入了 tests-passed 吗?

我拉取了代码,在 ac9577bcc7b69593bcdd204368d35492fc0cee15 版本上,我在本地仍然看到完全相同的错误。所以可能不止一个问题。:confused:

抱歉,我的错。我忘了推送 :facepalm: 我已在之前的帖子中更新了正确的提交。是的,这意味着有问题的测试被标记为通过。幸运的是,Discourse 本身没有问题——需要更新的是测试,而不是我们应用中的任何 bug。不过,我们将采取措施防止此类情况再次发生。

老生常谈!测试现在正顺利运行。

抱歉我之前没问。我知道自己不是主流的 Discourse 开发者,因为我在 Fedora 上工作而不是 Ubuntu,所以我倾向于认为我的机器上存在某种环境差异。感谢帮我解锁测试功能!

我看到关于禁用来自提交 25db91e35180b2707ca4a9f7ffd173823f86f18d 的测试(该提交撤销了你的更改)存在分歧。

但这并不是因为随后修复了问题,因为我在 d775338d637d9ef3843acf227a138e8f11352151(即 master 分支)进行了测试,在我拉取代码的那一刻测试已通过,但问题又出现了。

至少我在本地让测试通过了,并弄明白了为了处理我添加到迁移脚本中的新安全机制,我需要做出哪些不同的调整。

@tgxworld 解决冲突的计划是什么?我想在期间需要测试时,我可以暂时将 b1114b9a20343525c805d7339bd64954965a12f9 暂存(cherry-pick)到我的分支基础上吗?

这些测试本应被移除,但我没有注意到,因为我们的 CI 存在一个 bug,导致它在遇到错误时没有失败。这已在

中修复。