jest - 一个全面的 JavaScript 测试解决方案。适用于大多数 JavaScript 项目。

Created at: 2013-12-10 08:18:04
开发语言: TypeScript
授权协议: MIT

npm 版本 Jest在MIT许可证下发布。 在推特上关注

断续器状态 承保状态

Gitpod 就绪代码

 

🃏令人愉快的脚本测试

👩🏻 💻 开发人员就绪:全面的 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"
  }
}

最后,运行 or 和 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 的理想配置将取决于你的项目。请参阅巴别的文档以获取更多详细信息。

让你的巴别配置开玩笑

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-jest
transform

// jest.config.js
module.exports = {
  transform: {},
};

使用网络包

Jest 可用于使用 webpack 来管理资源、样式和编译的项目。与其他工具相比,webpack确实提供了一些独特的挑战。请参阅网络包指南以开始使用。

使用维特

Jest可用于使用vite通过本机ESM提供源代码以提供一些前端工具的项目,vite是一个固执己见的工具,并且确实提供了一些开箱即用的工作流程。由于来自 vite 的插件系统的工作方式,vite 不完全支持 Jest,但是有一些使用 的一流 jest 集成的工作示例,由于不完全支持此功能,因此你不妨阅读 vite-jest 的限制。请参阅vite指南以开始使用。

vite-jest

使用包裹

Jest 可用于使用包裹捆绑器来管理资源、样式和编译(类似于 webpack)的项目。包裹需要零配置。请参阅官方文档以开始使用。

使用类型脚本

Jest 通过巴别塔支持类型脚本。首先,请确保你遵循了上面有关使用 Babel 的说明。接下来,安装 via :

@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 支持纯粹是转译,所以 Jest 不会在测试运行时对其进行类型检查。如果需要,可以改用 ts-jest,或者只是单独运行 TypeScript 编译器 tsc(或作为生成过程的一部分)。

文档

官方网站上了解有关使用Jest的更多信息!

徽章

展示你正在使用的世界 Jest

用开玩笑测试 已测试 开玩笑

[![tested with jest](https://img.shields.io/badge/tested_with-jest-99424f.svg?logo=jest)](https://github.com/facebook/jest)
[![jest tested](https://img.shields.io/badge/Jest-tested-eee.svg?logo=jest&labelColor=99424f)](https://github.com/facebook/jest)
[![jest](https://jestjs.io/img/jest-badge.svg)](https://github.com/facebook/jest)

贡献

Jest的开发在GitHub上公开进行,我们感谢社区贡献的错误修复和改进。请阅读以下内容,了解如何参与改进Jest。

行为准则

Facebook 已经通过了一项行为准则,我们希望项目参与者遵守该准则。请阅读全文,以便了解哪些行为将被容忍,哪些行为不会被容忍。

贡献指南

阅读我们的贡献指南,了解我们的开发过程,如何提出错误修复和改进,以及如何构建和测试对Jest的更改。

好第一期

为了帮助你弄湿双脚并熟悉我们的贡献流程,我们列出了一些好的第一个问题,其中包含范围相对有限的错误。这是一个很好的起点。

捐赠

这个项目的存在要感谢所有做出贡献的人。

支持者

感谢我们所有的支持者!🙏

赞助商

通过成为赞助商来支持这个项目。你的徽标将显示在此处,并带有指向你网站的链接。

许可证

杰斯特是 MIT 的许可