lib*_*bby 6 npm reactjs jestjs babel-jest create-react-app
npx create-react-app my-app运行后npm test我得到以下信息:
PASS src/App.test.js\n \xe2\x9c\x93 renders learn react link (48ms)\n\nTest Suites: 1 passed, 1 total\nTests: 1 passed, 1 total\nSnapshots: 0 total\nTime: 2.555s\nRan all test suites.\n\nWatch Usage: Press w to show more.\nRun Code Online (Sandbox Code Playgroud)\n\n为什么需要2.5s运行整个套件,而只48ms运行测试?\n我怎样才能加快这个过程?\n谢谢!
更新:我正在运行这台计算机:
\n\n\n答案非常简单:如果您的测试需要 48 毫秒,而套件的整个持续时间需要 2.555 秒,那么正在运行的其他代码会占用另外 2.507 秒。
换句话说,在这一测试之前和之后必须运行的代码比您在不查看jest库框架代码的情况下看到的代码要多得多。
这就是为什么该套件的运行时间(2.5 秒)比测试总和(48 毫秒)长。
为了使测试更简单(也更容易)和更自动化,有很多“幕后”代码允许您:
jest模拟浏览器以使您的代码与在生产中运行的代码相似可以将其与租用拼车进行类比。上车需要支付最低费用,但一旦到达,就需要加上每分钟或每英里的费用。因此,租一辆自行车的费用为 2.507 美元,再加上每英里 4.8 美分。
一旦你的测试环境一开始就做好了,你后续的测试将不会每次都需要 2.5 秒的时间来运行。
与时间相关的笑话的有用链接:
加快测试速度的方法是:
jsdom环境中运行测试。虽然缺点是你的 React 测试会失败,所以这只适用于仅 Node 的测试(服务器端)。另一个非代码选项是使用更好/更快的 CPU 或使用更高效的操作系统。
与我在 Windows 10、华硕 GL502VMK 上的 6.17 秒相比,使用默认 create-react-app 的 2.555 秒要快得多。
在 Ubuntu 20 桌面虚拟机(上述同一台 Windows 10 计算机上的 Virtualbox,12GB 主机 RAM 中的 8 个,8 个主机 CPU 中的 4 个)上运行它,需要 2.105 秒。
您可以找到很多抱怨 Jest 和执行时间的文章,因此看来这不一定只是您的问题。Jest 的某些部分速度并不快。