【配置环境】VS Code怎么使用JavaScript的Mocha测试框架和Chai断言库

一,环境

  • Windows 11 家庭中文版,64 位操作系统, 基于 x64 的处理器
  • VS Code 版本: 1.83.1 (user setup)
  • Node.js 版本:20.9.0

二,安装背景

  • 在运行测试用例时遇到 ReferenceError: describe is not defined 错误,网上搜寻答案解释这通常是因为 Mocha 的测试框架没有正确执行或安装。
  • 而我刚入坑JavaScript,自然而然也没接触过这玩意,所以本地肯定是没有安装,接下来就去安装并且使用。
  • 简介:Mocha 是一个流行的 JavaScript 测试框架,用于编写和运行测试。它可以在浏览器和 Node.js 环境中运行,并提供了丰富的功能,如异步测试支持、模块化测试、钩子函数等

三,配置步骤

创建一个 JavaScript 项目

  1. 导航进入 JavaScript 项目目录。
  2. 在地址栏中输入 cmd 后按回车打开命令行窗口,然后输入 npm init -y 命令初始化一个 package.json 文件,后续会用到。

安装 Mocha测试框架 和 Chai断言库

  1. 在项目目录中打开的命令行窗口下,执行以下命令然后会在当前项目中安装 Mocha 测试框架和Chai断言库。
    1. npm install --save-dev mocha chai
  2. 在项目中执行以下命令创建一个测试文件,通常命名为 test.js 或以 .test.js 结尾。
    1. echo. > test.js
  3. 然后输入 code . 命令在 VS Code 中打开当前JS目录,并在test.js文件中输入测试内容。
    1. 在 Mocha 中,测试用例是由 describeit 构成的。
    2. describe 用于创建测试套件,it 用于编写具体的测试用例。

配置 VS Code 设置

  1. 在 VS Code 中,按 Ctrl+Shift+P 键后,在弹出的命令面板中输入:打开工作区设置。
  2. 然后会在当前目录下生成 .vscode/settings.json 配置文件,在这个文件中,添加以下配置。
    1. "mocha.files" 是一个 Mocha 扩展提供的配置项,用于指定要运行的测试文件的匹配模式。
    2. 如果有多个测试文件,可以使用通配符来匹配它们。例如,如果所有的测试文件都以 .test.js 结尾,可以使用 "mocha.files": "./**/*.test.js",这样就会匹配项目中所有以 .test.js 结尾的文件。

运行测试

  1. 在 VS Code 中,打开集成终端(Integrated Terminal)并运行 npx mocha 命令。
  2. 或者,可以使用 VSCode 的任务(Tasks)来运行测试。在项目根目录下创建一个 .vscode/tasks.json 文件,并添加类似以下的配置:
    1. "label" 是任务的显示名称,可以根据需要自定义。
    2. "type" 是任务类型,这里是 "shell",表示使用命令行 shell。
    3. "command" 是要运行的命令,这里是 "npm"
    4. "args" 是传递给命令的参数,这里是 ["test"],表示运行 npm 的 test 脚本。可以根据项目和测试框架进行调整。
    5. "group" 指定任务的分组,这里是 "test",表示这是一个测试任务,"isDefault": true 表示这是默认任务。
  3. 检查 package.json 文件中的 "test" 脚本,将其值修改为 "mocha"。
  4. Ctrl+Shift+P 打开命令面板,然后输入 "Tasks: Configure Default Build Task",点击下面内容。
  5. 选择 Run JavaScript Tests 作为默认生成任务,也就是在 .vscode/tasks.json 文件配置的"label" 字段名。(确保选择的是用于运行测试的任务)
  6. Ctrl+Shift+P 打开命令面板,在命令面板中输入 "Tasks: Run Build Task",然后点击该命令右侧的齿轮按钮。
  7. 可以看到使用 Ctrl+Shift+B 命令也可以运行任务,这里点击齿轮后,双击该项修改快捷键方式为 Ctrl+R 命令。
  8. 最后按 Ctrl+R 键就可以运行测试咯!!!

文件清单

  1. .vscode/settings.json文件内容
javascript 复制代码
{
    // 这会告诉 Mocha 在当前项目目录下寻找 test.js 文件来运行测试。
    "mocha.files": "./test.js"
}
  1. .vscode/task.json文件内容
javascript 复制代码
{
	"version": "2.0.0",
	"tasks": [
		{
			"label": "Run JavaScript Tests",
			"type": "shell",
			"command": "npm",
			"args": [
				"test"
			],
			"group": {
				"kind": "build",
				"isDefault": true
			},
			"problemMatcher": []
		}
	]
}
  1. package.json文件内容
javascript 复制代码
{
  "name": "mocha_demo",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "mocha"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "chai": "^4.3.10",
    "mocha": "^10.2.0"
  }
}
  1. test.js文件内容
javascript 复制代码
// test.js
const assert = require('chai').assert;

describe('MyTestSuite', function () {
    it('Mocha 安装成功', function () {
        assert.equal(1, 1);
    });
});
相关推荐
黑不拉几的小白兔14 分钟前
PTA部分题目C++重练
开发语言·c++·算法
写bug的小屁孩15 分钟前
websocket身份验证
开发语言·网络·c++·qt·websocket·网络协议·qt6.3
我认不到你24 分钟前
antd proFromSelect 懒加载+模糊查询
前端·javascript·react.js·typescript
scc214033 分钟前
spark的学习-06
javascript·学习·spark
材料苦逼不会梦到计算机白富美1 小时前
线性DP 区间DP C++
开发语言·c++·动态规划
java小吕布1 小时前
Java Lambda表达式详解:函数式编程的简洁之道
java·开发语言
sukalot1 小时前
windows C#-查询表达式基础(一)
开发语言·c#
我是苏苏1 小时前
C# Main函数中调用异步方法
前端·javascript·c#
ahadee1 小时前
蓝桥杯每日真题 - 第12天
c++·vscode·算法·蓝桥杯
转角羊儿1 小时前
uni-app文章列表制作⑧
前端·javascript·uni-app