• 如何使用Jest生成中文测试报告


    前言

    Jest是一个非常流行的JavaScript测试框架,它提供了丰富的功能和易于理解的测试报告。然而,默认情况下,Jest生成的测试报告是以英文展示的。如果需要生成中文测试报告,我们需要对Jest进行一些配置。

    以下是一种方法,可以在Jest中生成中文测试报告

    安装相关依赖

    首先,确保已经安装了Node.js和npm。然后,在你的项目根目录下,运行以下命令来安装Jest和相关的依赖:

    npm install jest jest-junit cheerio -D
    
    • 1

    这里我们除了安装Jest之外,还安装了jest-junitcheerio插件。jest-junit插件用于生成JUnit XML格式的测试报告,而cheerio插件则用于解析HTML。

    配置Jest

    在项目根目录下创建一个名为jest.config.js的文件,并将以下内容复制到文件中:

    module.exports = {
      reporters: [
        "default",
        ["jest-junit", { outputDirectory: "./test-results" }]
      ],
      testResultsProcessor: "jest-junit"
    };
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    这个配置文件中定义了两个报告器:默认报告器和jest-junit报告器。默认报告器会生成控制台输出,而jest-junit报告器会生成JUnit XML格式的测试报告,并保存在./test-results目录下。

    运行测试

    现在,你可以编写一些测试用例并运行它们。在项目根目录下,创建一个名为__tests__的文件夹,并在该文件夹下创建一个名为example.test.js的文件。在example.test.js中,编写以下内容:

    describe("示例测试", () => {
      test("测试示例", () => {
        expect(1 + 1).toBe(2);
      });
    });
    
    • 1
    • 2
    • 3
    • 4
    • 5

    这个测试用例很简单,只是验证了1加1等于2的结果。

    最后,在命令行中运行以下命令来执行测试:

    复制代码
    npx jest --reporters=default
    
    • 1
    • 2

    运行完毕后,你将会在控制台看到Jest生成的默认测试报告,同时在./test-results目录下生成JUnit XML格式的测试报告。

    生成HTML格式的测试报告

    我们可以使用cheerio插件来解析JUnit XML格式的测试报告,并将其转换为HTML格式。在项目根目录下创建一个名为generate-report.js的文件,并将以下内容复制到文件中:

    const fs = require("fs");
    const cheerio = require("cheerio");
    
    // 读取JUnit XML格式的测试报告
    const xml = fs.readFileSync("./test-results/junit.xml", "utf-8");
    
    // 解析XML
    const $ = cheerio.load(xml, { xmlMode: true });
    
    // 创建HTML表格
    let html = "";
    
    // 获取所有测试套件
    $("testsuite").each((index, suite) => {
      // 获取测试套件的名称
      const suiteName = $(suite).attr("name");
    
      // 获取所有测试用例
      $(suite)
        .find("testcase")
        .each((index, testcase) => {
          // 获取测试用例的名称和状态
          const testName = $(testcase).attr("name");
          const status = $(testcase).attr("status");
    
          // 添加到HTML表格中
          html += ``;
        });
    });
    
    // 完成HTML表格
    html += "
    测试用例状态
    ${suiteName} - ${testName}${status}
    "; // 将HTML写入文件 fs.writeFileSync("./test-results/report.html", html); console.log("HTML测试报告已生成");
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37

    在命令行中运行以下命令来生成HTML格式的测试报告

  • 相关阅读:
    [黑马程序员SpringBoot2]——基础篇2
    C++STL学习笔记-map的属性(大小以及是否存在)
    Ros2 学习02- ubuntu22.04 安装ros2
    Day04-程序控制语句
    leetcode刷题方法总结—数组全解
    Java进阶学习路线图
    技术分享| anyRTC服务4.3升级
    shell之常见网络命令介绍
    软件保护工具VMProtect将许可系统集成到应用程序(8):硬件锁定
    tensor的mode-n展开和mode-n乘积
  • 原文地址:https://blog.csdn.net/m0_47901007/article/details/133141525