【问题标题】:Jest runs 40 times slower than mochaJest 比 mocha 慢 40 倍
【发布时间】:2020-03-11 06:06:59
【问题描述】:

我打开了ticket,但如果这是正常且可以接受的,它会立即关闭而没有任何信息;

我会在这里发布问题。


认为这是正常的可能是我职业生涯迄今为止最大的错误之一。我正在修补 CodeSandbox,并注意到测试与我习惯的相比是多么即时。设置一个基本的模板项目,这是我的结果:

{
  "name": "jest-performance-test",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",
  "scripts": {
    "test": "mocha"
  },
  "dependencies": {
    "chai": "^4.2.0",
    "jest": "^23.0.0"
  },
  "devDependencies": {
    "mocha": "^7.1.0"
  }
}

jest.config.js

{
  "testRegex": "__tests__/*",
  "testEnvironment": "node",
}

使用

进行的几十个重复测试
const {expect} = require('chai')

it ('should run the test', async () => {
  expect (true).to.be.true
})

//...

在每个

运行jest --watch,进行更改并保存:

运行yarn run test --watch (mocha --watch),进行更改并保存:

--runInBand 让事情变得更糟。

我明白了,我被 5y/o Windows 笔记本电脑的硬盘和所有这些卡住了,但是 40 次

我的项目具有相当复杂的笑话设置,并在过去一年左右多次尝试解决性能问题。

有什么办法我可以不改用 mocha/chai 吗?我不想再运行一个笑话测试了。

【问题讨论】:

  • 我目前正在设置 mocha 以使用 typescript,但到目前为止速度不是很快 - 它是瞬间完成的。我按下保存,抬起眼睛,它已经通过了测试。我不敢相信。
  • 比较大量测试并不是最可靠的。运行单个测试会更实用。调查起来会更容易。此外,您的 ts+jest 设置可能不是最佳的。您是否尝试过寻找可行的解决方案?
  • 将 jest 升级到最新版本也会有所帮助。
  • @SkorpEN 我已经用纯 JS 运行测试,所以这是不可能的。 Jest 是最新的。长话短说,所有替代解决方案都很糟糕哈哈。我玩过设置,--maxWorkers 和诸如此类的东西,似乎已经达到了令人满意的性能。我认为捆绑所有工具值得额外开销,特别是考虑到我最终会升级到更好的硬件。
  • 您好,我正在尝试为我的 vue js 项目评估一个测试框架/运行器,并遇到了这篇文章 medium.com/dailyjs/…。自从您使用它以来有什么建议吗?

标签: javascript node.js testing jestjs mocha.js


【解决方案1】:

我在我的项目中都使用了这两种方法,是的,性能差异是非常真实的。

我只在jest 提供对前端模块的增强支持时才使用它——例如,它对 React 非常有用。否则我总是使用mocha

jest 使用 Babel 将所有 TypeScript 代码(包括需要被转译时的 node_modules)转译为 JavaScript。 mocha 使用 ts-node 直接运行 TypeScript。

这就是差异的原因。

【讨论】:

    猜你喜欢
    • 2017-01-22
    • 2015-05-23
    • 2021-04-12
    • 1970-01-01
    • 2015-02-20
    • 2014-01-21
    • 2014-12-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多