#12·tldr

有时,当通过 active_support/dependencies/autoload 加载同一个文件时,并行测试会被锁定,导致测试超时

作者: henrahmagix创建于 2023年12月29日更新于 2023年12月29日

我还不确定这个问题是 Concurrent、Zeitwerk 还是两者都有,所以我想知道这个库是否能解决这个问题。为了调试这个问题,我已经编辑了这个 gem 的源代码:我将 WIPTest 改为接收当前线程,而 Runner 则在 1.8 秒的进程退出时打印测试线程的当前跟踪信息,以查看它是如何卡住的。这个问题并不是一直都会发生,根据我的运行次数,大约有 30%。它在我的一个项目中发生了,我已经能够将其缩小到以下仓库:https://GitHub.com/henrahmagix/tldr-require-lock-test/tree/e9a5e45c02949c0773c47797e2beaab734589c5b。这是我自己的项目的最小重现,它是一个 Railtie,因此需要"rails/all",我认为这会引入 Zeitwerk。大家怎么看呢?这是一个 TLDR 可以解决的问题吗?还是这是一个无法解决的并发问题?

内容来源: tendersearls/tldr