在前端开发中,我们经常使用 Jest 进行单元测试。而 Jest 默认的处理方式一般会将测试结果以 JSON 格式输出。但是,在实际项目中,我们往往需要更加友好的方式呈现测试结果,比如将测试结果输出成 HTML 或者 Markdown 格式。这就需要使用到 npm 包 @backtrack/jest-serializer-preset。
什么是 @backtrack/jest-serializer-preset
@backtrack/jest-serializer-preset 是一个 Jest 序列化器插件。它可以将 Jest 的测试结果转换为指定的格式。目前支持的格式包括 HTML、Markdown、JSON 等。
同时,它还可以集成到基于 Create React App 的项目中,让开发者更加方便地进行单元测试。并且,它的配置非常简单,只需要在 Jest 配置文件中进行少量配置即可。
如何使用 @backtrack/jest-serializer-preset
以下将详细介绍如何在项目中使用 @backtrack/jest-serializer-preset。
1.安装
在项目中运行以下命令,安装该包:
npm install --save-dev @backtrack/jest-serializer-preset
2.配置 Jest 配置文件
在项目的根目录下,创建一个名为 jest.config.js 的文件,并将以下内容复制到该文件中:
module.exports = { // ... snapshotSerializers: ["@backtrack/jest-serializer-preset"], // ... };
这里只需要将 "@backtrack/jest-serializer-preset" 添加到 snapshotSerializers 数组中即可。
3.选择输出格式
如果我们需要以 HTML 或者 Markdown 格式输出测试结果,那么需要进行少量的配置。我们可以在 Jest 配置文件中添加以下配置:
module.exports = { // ... collectCoverage: true, coverageReporters: ["html", "lcov", "text-summary"], testResultsProcessor: "jest-sonar-reporter", // ... };
其中 coverageReporters 数组表示需要将测试覆盖率输出到哪些地方。这里设置了三个选项,分别为 html、lcov 和 text-summary。其中 html 和 lcov 分别表示输出覆盖率结果到 HTML 和 LCOV 格式文件中,text-summary 表示输出一个简单的文本摘要到控制台上。
testResultsProcessor 选项则是指定将 Jest 的测试结果输出到哪个包中,这里我们选用 jest-sonar-reporter。同时,我们还需要在项目根目录下添加一个名为 sonar-project.properties 的文件,用于配置 SonarQube。
4.运行测试
运行测试的命令和之前一样,不同的是,现在测试结果已经以指定格式输出了。可以在命令行中查看输出的摘要信息,也可以在 html 或者 lcov 文件中查看详细测试覆盖率信息。
示例代码
以下是一个简单的示例代码,用于演示如何使用 @backtrack/jest-serializer-preset:
-- -------------------- ---- ------- ------ - --- - ---- -------- ------------- ---------- -- -- - ---------- - - - -- ----- --- -- -- - ------------- ------------ --- ---------- - - - -- ----- --- -- -- - ------------- ------------ --- ---
以 Markdown 格式输出的测试结果:
-- -------------------- ---- ------- -- ---- ------- - ------- - ----- -- ------ - ------- - ----- -- ---------- - ----- -- ----- --- -- --- --- ---- ------ -------- ------------------------ - ---- ------ - ----- - ------- - ------- - ------- - ----------------------------------------------------- - - - - - - - - - - - ---- ------ - ------ - ------------------------------------------------------------------------------------------- - ---- - - - -- ----- - - - ------ - - ---- - - - -- ----- - - - ------ - ------ --- -------- - ---- - - - -- ----- - ----- - ---- - - - -- ----- -
希望本篇文章能够帮助到大家,让大家更加方便地进行单元测试。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5f3601b8dbf7be33b2566ee9