❮ 上一节
下一节 ❯
Jest - 安装和环境设置
在本章中,我们将指导您在项目中安装 Jest。Jest 可帮助您对 JavaScript 代码运行测试,尽早发现错误,并确保您的函数、模块或组件正常工作。最后,您将设置好 Jest 并准备就绪。
安装 Jest 前的先决条件
在开始安装 Jest 之前,请确保您具有以下条件:
Node.js(v14 或更高版本):Jest 在 Node.js 上运行,因此您需要安装它。建议使用版本 14 或更高版本。如果您没有,请从 Node.js 网站 下载并安装。
npm(Node 包管理器):安装 Jest 和管理依赖项需要 npm。
代码编辑器(推荐使用 VS Code):代码编辑器对于编写和编辑代码非常重要。 Visual Studio Code (VS Code) 是一种流行的选择,可以很好地与 Node.js 和 Jest 配合使用。
JavaScript 项目:如果您还没有项目,请按照以下步骤操作:
创建一个新目录并导航到该目录:
mkdir your-project-name
cd your-project-name
初始化一个新的 npm 项目:
npm init -y
这将为您的项目创建一个 package.json 文件。以下是它可能的样子。
系统验证
安装必要的软件后,使用以下命令验证 Node.js 和 npm 的版本:
检查 Node.js 版本:
node --version
检查 npm 版本:
npm --version
如果两个命令都返回正确的版本号,则表示您已准备好继续安装 Jest。
分步安装说明
现在您已确认已安装 Node.js 和 npm,让我们来看看在您的项目中安装 Jest 的步骤。
导航到您的项目目录
继续之前,请确保您位于项目目录中。如果您还没有到达那里,请运行:
cd path/to/your/project
使用 npm 安装 Jest
# 全局安装
npm install -g jest
# 项目特定安装
npm install --save-dev jest
这会将 Jest 安装为开发依赖项,这意味着它仅在开发和测试期间需要,而不是在生产中。
使用 Yarn 安装 Jest
# 全局安装
yarn global add jest
# 项目特定安装
yarn add --dev jest
Yarn 安装 Jest 的方式与 npm 相同,因此请选择您正在使用的包管理器。
使用 pnpm 安装 Jest (可选)
# 全局安装:
pnpm add -g jest
# 项目特定安装
pnpm add --dev jest
pnpm 是一个替代包管理器,其工作方式与 npm 和 yarn 类似。
如何检查 Jest 是否安装正确?
安装 Jest 后,验证一切是否按预期运行非常重要。
检查 Jest 安装
您可以通过运行以下命令来检查 Jest 是否安装正确:
npx jest --version
此命令将打印已安装的 Jest 版本。如果您看到版本号,则表示 Jest 安装正确。
基本验证:运行简单测试
要进一步验证 Jest 是否按预期工作,您可以运行简单测试。请按照以下步骤操作:
您的项目目录应如下所示:
创建源文件 (src/math.js)
在 src 文件夹中,创建一个包含以下内容的 math.js 文件:
function add(a, b) {
return a + b;
}
function subtract(a, b) {
return a - b;
}
module.exports = { add, subtract };
您的 math.test.js 文件应如下所示:
创建测试文件 (tests/math.test.js)
在 __tests__ 文件夹中,创建一个 math.test.js 文件,为加法和减法函数编写测试:
const { add, subtract } = require('../src/math');
test('adds 1 + 2 to equal 3', () => {
expect(add(1, 2)).toBe(3);
});
test('subtracts 5 - 3 to equal 2', () => {
expect(subtract(5, 3)).toBe(2);
});
您的测试文件应如下所示:
配置
接下来,通过更新 package.json 文件确保您的项目已准备好运行 Jest。如果需要,您还可以添加 jest.config.js 文件进行高级设置。
更新 package.json:确保您的 package.json 包含以下用于使用 Jest 运行测试的脚本:
{
"scripts": {
"test": "jest",
"test:watch": "jest --watch",
"test:coverage": "jest --coverage"
}
}
您的 package.json 应如下所示:
可选:jest.config.js:您可以在项目根目录中创建 jest.config.js 文件以进行其他设置,例如启用覆盖率报告。
module.exports = {
verbose: true,
collectCoverage: true,
coverageReporters: ['text', 'lcov'],
testEnvironment: 'node'
};
它应该看起来像这样:
运行测试
文件到位后,您可以使用以下命令运行测试。
# 运行所有测试
npm test
# 监视模式(更改后自动重新运行)
npm run test:watch
# 生成覆盖率报告
npm run test:coverage
示例测试输出
运行测试时,您应该看到如下输出:
Jest 将自动查找并运行您的测试文件(例如, __tests__ 或 .test.js),确认 Jest 正常运行。
测试命令示例
设置好文件后,您可以使用各种命令运行 jest 测试,每个命令都有不同的用途。以下是最常见的测试:
运行所有测试(默认):要运行所有测试,请执行:
jest
运行特定测试:要仅运行与模式或文件名匹配的测试:
jest my-test # 或
jest path/to/my-test.js
运行与更改的文件相关的测试:运行与更改的文件相关的测试(使用 hg/git 未提交的文件):
jest -o
运行特定文件的测试:要运行与特定文件相关的测试文件:
jest --findRelatedTests path/to/fileA.js path/to/fileB.js
运行与特定测试名称匹配的测试:要运行与特定规范名称匹配的测试(与 describe 或 test 中的名称匹配):
jest -t "name-of-spec"
在监视模式下运行:要启用监视模式并在文件更改时重新运行测试:
jest --watch # 默认运行 jest -o
jest --watchAll # 运行所有测试
在监视模式下,您还可以指定文件的名称或路径以关注特定的一组测试。
❮ 上一节
下一节 ❯