mcdanlj
(Michael K Johnson)
2020 年6 月 22 日 18:29
1
过去几天,当我尝试在本地运行测试时,一直出现以下错误:
$ 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 的干净检出版本上运行测试也会出现此错误,因此问题出在我的环境上,但我不确定该从哪里入手排查。
有什么建议吗?
eviltrout
(Robin Ward)
2020 年6 月 22 日 20:36
2
看起来我们不小心提交了有问题的测试规范。我已在以下提交中禁用了这些有问题的测试规范:
committed 08:30PM - 22 Jun 20 UTC
但我们需要跟进以下两项工作:
修复有问题的测试规范
确保今后不会再提交此类问题。
mcdanlj
(Michael K Johnson)
2020 年6 月 22 日 21:03
3
感谢查看!这些失败的规范是因为间歇性问题而进入了 tests-passed 吗?
我拉取了代码,在 ac9577bcc7b69593bcdd204368d35492fc0cee15 版本上,我在本地仍然看到完全相同的错误。所以可能不止一个问题。
eviltrout
(Robin Ward)
2020 年6 月 22 日 21:05
4
抱歉,我的错。我忘了推送 我已在之前的帖子中更新了正确的提交。是的,这意味着有问题的测试被标记为通过。幸运的是,Discourse 本身没有问题——需要更新的是测试,而不是我们应用中的任何 bug。不过,我们将采取措施防止此类情况再次发生。
mcdanlj
(Michael K Johnson)
2020 年6 月 22 日 21:13
5
老生常谈!测试现在正顺利运行。
抱歉我之前没问。我知道自己不是主流的 Discourse 开发者,因为我在 Fedora 上工作而不是 Ubuntu,所以我倾向于认为我的机器上存在某种环境差异。感谢帮我解锁测试功能!
mcdanlj
(Michael K Johnson)
2020 年6 月 23 日 02:11
6
我看到关于禁用来自提交 25db91e35180b2707ca4a9f7ffd173823f86f18d 的测试(该提交撤销了你的更改)存在分歧。
但这并不是因为随后修复了问题,因为我在 d775338d637d9ef3843acf227a138e8f11352151(即 master 分支)进行了测试,在我拉取代码的那一刻测试已通过,但问题又出现了。
至少我在本地让测试通过了,并弄明白了为了处理我添加到迁移脚本中的新安全机制,我需要做出哪些不同的调整。
@tgxworld 解决冲突的计划是什么?我想在期间需要测试时,我可以暂时将 b1114b9a20343525c805d7339bd64954965a12f9 暂存(cherry-pick)到我的分支基础上吗?
tgxworld
(Alan Tan)
2020 年6 月 23 日 04:12
7
这些测试本应被移除,但我没有注意到,因为我们的 CI 存在一个 bug,导致它在遇到错误时没有失败。这已在
committed 04:09AM - 23 Jun 20 UTC
中修复。