👩🏻 💻 开发人员就绪:一个全面的JavaScript测试解决方案。对于大多数JavaScript项目来说都是开箱即用的。
🏃🏽 即时反馈:快速的交互式监视模式仅运行与更改文件相关的测试文件。
查看有关 jestjs.io 的更多信息
使用纱线
安装开玩笑:
yarn add --dev jest
或 npm
:
npm install --save-dev jest
注意:Jest 文档使用命令,但也可以工作。你可以在此处在 yarn 文档中进行比较和命令。
yarn
npm
yarn
npm
让我们首先为一个将两个数字相加的假设函数编写一个测试。首先,创建一个文件:
sum.js
function sum(a, b) {
return a + b;
}
module.exports = sum;
然后,创建一个名为 的文件。这将包含我们的实际测试:
sum.test.js
const sum = require('./sum');
test('adds 1 + 2 to equal 3', () => {
expect(sum(1, 2)).toBe(3);
});
将以下部分添加到你的 :
package.json
{
"scripts": {
"test": "jest"
}
}
最后,运行或和 Jest 将打印此消息:
yarn test
npm test
PASS ./sum.test.js
✓ adds 1 + 2 to equal 3 (5ms)
你刚刚使用 Jest 成功编写了第一个测试!
此测试用于 和 测试两个值是否完全相同。若要了解 Jest 可以测试的其他内容,请参阅使用匹配器。
expect
toBe
你可以直接从 CLI 运行 Jest(如果它在你的 ,例如 by 或 )中全局可用,并带有各种有用的选项。
PATH
yarn global add jest
npm install jest --global
以下是在文件匹配上运行 Jest 的方法,用作配置文件并在运行后显示本机操作系统通知:
my-test
config.json
jest my-test --notify --config=config.json
如果你想了解有关通过命令行运行的更多信息,请查看 Jest CLI 选项页面。
jest
根据你的项目,Jest 会问你几个问题,并将创建一个基本配置文件,其中包含每个选项的简短描述:
jest --init
要使用 Babel,请通过以下方式安装所需的依赖项:
yarn
yarn add --dev babel-jest @babel/core @babel/preset-env
通过在项目的根目录中创建一个文件,将 Babel 配置为针对当前版本的 Node:
babel.config.js
// babel.config.js
module.exports = {
presets: [['@babel/preset-env', {targets: {node: 'current'}}]],
};
Babel 的理想配置将取决于你的项目。有关更多详细信息,请参阅 Babel 的文档。
Jest 将设置为如果未设置为其他内容。你可以在配置中使用它来有条件地仅设置 Jest 所需的编译,例如
process.env.NODE_ENV
'test'
// babel.config.js
module.exports = api => {
const isTest = api.env('test');
// You can use isTest to determine what presets and plugins to use.
return {
// ...
};
};
注意:在安装 Jest 时自动安装,如果你的项目中存在 babel 配置,则会自动转换文件。若要避免此行为,可以显式重置配置选项:
babel-jesttransform
// jest.config.js
module.exports = {
transform: {},
};
Jest 可用于使用 webpack 来管理资产、样式和编译的项目。与其他工具相比,webpack 确实提供了一些独特的挑战。请参阅 webpack 指南以开始使用。
Jest 可用于使用 vite 通过本机 ESM 提供源代码的项目,以提供一些前端工具,vite 是一个固执己见的工具,确实提供了一些开箱即用的工作流程。由于 Vite 插件系统的工作方式,Vite 并不完全支持 Jest,但是有一些使用 1 进行一流 Jest 集成的工作示例,由于这并不完全支持,你不妨阅读 vite-jest 的限制
。请参阅视频指南以开始使用。
vite-jest
Jest 可用于使用包裹捆绑器来管理资产、样式和编译的项目,类似于 webpack。包裹需要零配置。请参阅官方文档以开始使用。
Jest 通过 Babel 支持 TypeScript。首先,确保你遵循了上面关于使用 Babel 的说明。接下来,安装通过:
@babel/preset-typescript
yarn
yarn add --dev @babel/preset-typescript
然后添加到 .
@babel/preset-typescript
babel.config.js
// babel.config.js
module.exports = {
presets: [
['@babel/preset-env', {targets: {node: 'current'}}],
+ '@babel/preset-typescript',
],
};
但是,将 TypeScript 与 Babel 一起使用有一些注意事项。因为 Babel 中的 TypeScript 支持纯粹是转译,Jest 不会在测试运行时对其进行类型检查。如果你想要这样,你可以改用ts-jest,或者单独运行TypeScript编译器tsc(或作为构建过程的一部分)。
向世界展示你正在使用的 Jest
→
[](https://github.com/facebook/jest)
[](https://github.com/facebook/jest)
[](https://github.com/facebook/jest)
Jest 的开发在 GitHub 上公开进行,我们感谢社区提供错误修复和改进。阅读以下内容,了解如何参与改进 Jest。
Facebook 已采用《行为准则》,我们希望项目参与者遵守该准则。请阅读全文,以便你了解哪些行为将被容忍,哪些行为不会被容忍。
阅读我们的贡献指南,了解我们的开发流程,如何提出错误修复和改进,以及如何构建和测试对 Jest 的更改。
为了帮助你了解并熟悉我们的贡献流程,我们列出了包含范围相对有限的错误的第一个问题。这是一个很好的起点。
这个项目的存在要归功于所有做出贡献的人。
感谢我们所有的支持者!
通过成为赞助商来支持这个项目。你的徽标将显示在此处,并带有指向你网站的链接。
Jest是 MIT 许可的。