运行Jest测试会永远循环

时间:2019-09-19 16:47:13

标签: unit-testing jestjs

今天,出于某种无法解释的原因,我开玩笑的测试文件开始循环播放,导致终端闪烁。

我正在运行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个小时前运行正常,出了什么问题?

1 个答案:

答案 0 :(得分:0)

事实证明,jest.setup文件正在将配置文件写入磁盘,同时设置了一个临时mongoDB。如果至少有一项测试使用了mongoDB,则循环将停止,或者如果我删除了安装文件,则循环将停止。

因此,当我的30个测试文件中有一个连接到mongo的文件被编辑后,我的问题就开始了(开始循环/闪烁)。在尝试解决该问题时,我删除了所有其余的测试文件,这给了我一些最基本的测试,但由于我仍未连接,因此仍然循环播放。

仍然不能百分百确定确切的机制,但是在继承未使用默认玩笑设置的其他人的代码库时,可能最好是扩展玩笑的知识以了解发生了什么。