为啥 jest 寻找不再存在的测试文件?

Posted

技术标签:

【中文标题】为啥 jest 寻找不再存在的测试文件?【英文标题】:Why is jest looking for a test file that no longer exists?为什么 jest 寻找不再存在的测试文件? 【发布时间】:2018-08-30 02:48:03 【问题描述】:

在创建新测试时,我收到了这个错误:

Determining test suites to run...Error: ENOENT: no such file or directory, stat '/home/andrew/Documents/wise-fox/The-App/src/tests/components/AlertsComponent/AlertsPages/PromoPage3.test.js'
    at Object.fs.statSync (fs.js:948:11)
    at Object.statSync (/home/andrew/Documents/wise-fox/The-App/node_modules/graceful-fs/polyfills.js:297:22)
    at fileSize (/home/andrew/Documents/wise-fox/The-App/node_modules/jest/node_modules/jest-cli/build/test_sequencer.js:71:73)
    at tests.sort (/home/andrew/Documents/wise-fox/The-App/node_modules/jest/node_modules/jest-cli/build/test_sequencer.js:91:34)
    at Array.sort (native)
    at TestSequencer.sort (/home/andrew/Documents/wise-fox/The-App/node_modules/jest/node_modules/jest-cli/build/test_sequencer.js:77:18)
    at /home/andrew/Documents/wise-fox/The-App/node_modules/jest/node_modules/jest-cli/build/run_jest.js:148:26
    at Generator.next (<anonymous>)
    at step (/home/andrew/Documents/wise-fox/The-App/node_modules/jest/node_modules/jest-cli/build/run_jest.js:27:377)
    at /home/andrew/Documents/wise-fox/The-App/node_modules/jest/node_modules/jest-cli/build/run_jest.js:27:537

错误是试图查找不再存在的测试文件。我复制了许多测试,然后调整了文件的名称以及里面的测试以适应新文件。

以前,jest 只是意识到某些测试文件已经消失(因为重命名),但在这种情况下,jest 认为这些文件仍然存在。我不知道为什么,也不知道如何解决。

框架:反应 16 操作系统:Linux 基本操作系统

【问题讨论】:

【参考方案1】:

啊,这与过时的快照文件有关。我手动删除了它们,测试运行得很好

【讨论】:

真的,提及快照文件/目录通常存储在哪里会有所帮助。【参考方案2】:

对我来说,这不是快照问题,而是缓存问题。 运行

jest --clearCache

摆脱它。

【讨论】:

【参考方案3】:

只是,删除生成的目录snapshots它会在你写 YOUR_FILE_NAME.test.js 的地方生成。

【讨论】:

以上是关于为啥 jest 寻找不再存在的测试文件?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Jest 在测试“Colyseus”游戏时会出现这个错误?

为啥基于 jest 的单元测试现在会导致 0% 的测试覆盖率?

为啥 Jest 不让我使用节点测试环境,即使他们自己更改了它?

为啥在 Jest 测试中将 async() 转换为 async function()?

测试:使用 Jest/Enzyme 寻找风格化的情感成分

为啥这些 Jest 测试失败了? TypeError:无法读取未定义的属性“应用”