【问题标题】:MongoDB-Memory-Server makes jest test debug get stuck on WSLMongoDB-Memory-Server 使 jest 测试调试卡在 WSL 上
【发布时间】:2021-02-01 06:22:59
【问题描述】:

我正在将 TypeScript 与 Nodejs 一起使用,并且正在使用 Jest 和 mongo-memory-server 测试我的 MongoDB 数据库。

我已经使用它一段时间了(在 Arch Linux 上),它工作得很好。

最近我尝试了 WSL (Ubuntu 20.04),奇怪的是,当我尝试使用 mongo-memory-server 调试任何测试时,它会立即卡住,就像它正在计算某些东西一样。当我暂停时,它在 emitHookFactoryasync_hooks.js 上。

另外,mongo_killer.js 似乎正在调用堆栈上运行。

当我在 Linux 上尝试这个时,它又可以正常工作了。

我能做什么?

编辑: 所有测试都通过并且程序运行良好,这仅在调试时发生。

编辑 2: 我注意到一些非常奇怪的事情:如果我在“Step Over”出现时尽快按下,调试器不会卡住,并且工作正常。顺便说一句,我正在使用 VSCode 调试器。

【问题讨论】:

  • 如果这可能是相关的,我最近在 Mongo 文档中注意到它不支持 WSL 的警告。没有进一步检查这是否意味着它不能保证工作或已知它不能工作。
  • @EstusFlask 感谢您的帮助,似乎可以在 WSL2 上安装 mongodb,如 microsoft 文档中所述:docs.microsoft.com/en-us/windows/wsl/tutorials/wsl-database
  • 感谢您的链接,我还没有考虑 WSL2,因为没有足够的理由,但我可能会考虑这些问题。如果您能够以这种方式对其进行整理,请考虑发布自我回答。还有其他关于 Mongo 和 WSL 的已回答问题,但它们处理的是 vanilla 安装,而不是像 mongo-memory-server 这样的派生包。
  • @EstusFlask 我认为这不是 MongoDB 的问题,因为所有测试都有效,并且程序运行良好,没有任何问题。另外,我已经更新了问题
  • 我明白了。如果问题是 VSCode 特有的,请尝试以通常使用 Chrome 的方式调试 Jest,例如stackoverflow.com/questions/33247602/….

标签: node.js mongodb jestjs windows-subsystem-for-linux async.js


【解决方案1】:

事实证明,使用侧边栏“调用堆栈”菜单中的“跳过”按钮有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-09
    • 2021-10-11
    • 2014-02-09
    • 2022-10-19
    • 2018-11-02
    相关资源
    最近更新 更多