今天,出于某种无法解释的原因,我开玩笑的测试文件开始循环播放,导致终端闪烁。
我正在运行jest src --watch
,其中src是我的源文件夹。
我关注了许多其他讨论,但没有一个帮助解决我的问题。
https://github.com/facebook/jest/issues/4635在谈论自定义处理器,但是我使用的是默认设置。
我尝试忽略文件夹。
我最终删除了所有测试文件,此时循环停止。如果我将测试文件添加到__tests__
,则它将与文件匹配,但不会运行测试。如果我将测试文件添加到我的/ src文件夹中,它将再次开始循环,并且实际测试是通过还是失败都没有关系。即使我使用简单的
describe('Test Suite', () => {
test('two plus two is four', () => {
expect(2 + 2).toBe(4)
})
})
它循环和闪烁。
这是我开玩笑的设置
"jest": {
"verbose": false,
"watchPathIgnorePatterns": [
"<rootDir>/dist/",
"<rootDir>/node_modules/"
],
"globalSetup": "./jest-setup.js",
"globalTeardown": "./jest-teardown.js",
"testEnvironment": "./jest-mongo.js"
},
有人知道是什么导致此循环吗?我没有更改任何文件夹中的任何文件以使--watch认为它需要再次运行,没有其他应用程序,例如,与该文件夹同步的保管箱。
我正在使用VSCode进行开发,但是如果我在终端窗口中进行测试,也会发生同样的事情。
5个小时前运行正常,出了什么问题?
答案 0 :(得分:0)
事实证明,jest.setup文件正在将配置文件写入磁盘,同时设置了一个临时mongoDB。如果至少有一项测试使用了mongoDB,则循环将停止,或者如果我删除了安装文件,则循环将停止。
因此,当我的30个测试文件中有一个连接到mongo的文件被编辑后,我的问题就开始了(开始循环/闪烁)。在尝试解决该问题时,我删除了所有其余的测试文件,这给了我一些最基本的测试,但由于我仍未连接,因此仍然循环播放。
仍然不能百分百确定确切的机制,但是在继承未使用默认玩笑设置的其他人的代码库时,可能最好是扩展玩笑的知识以了解发生了什么。