【配置环境】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文件内容

{// 这会告诉 Mocha 在当前项目目录下寻找 test.js 文件来运行测试。"mocha.files": "./test.js"
}

2. .vscode/task.json文件内容

{"version": "2.0.0","tasks": [{"label": "Run JavaScript Tests","type": "shell","command": "npm","args": ["test"],"group": {"kind": "build","isDefault": true},"problemMatcher": []}]
}

3. package.json文件内容

{"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"}
}

4. test.js文件内容

// test.js
const assert = require('chai').assert;describe('MyTestSuite', function () {it('Mocha 安装成功', function () {assert.equal(1, 1);});
});

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/189087.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Notepad++ 通过HexEditor插件查看.hprof文件、heap dump文件的堆转储数据

文章目录 需求场景插件安装查看notepad的版本,看看是32位的还是64位的下载对应的版本解压导入插件打开notepad插件文件夹:Notepad安装目录新建一个HexEditor文件夹选中插件文件导入 重启notepad使用 需求场景 想要查看app内存的某个域的数据。 利用Andr…

Taro.navigateTo 使用URL传参数和目标页面参数获取

文章目录 1. Taro.navigateTo 简介2. 通过 URL 传递参数3. 目标页面参数获取4. 拓展与分析4.1 拓展4.2 URL参数的类型4.3 页面间通信 5. 总结 🎉欢迎来到Java学习路线专栏~Taro.navigateTo 使用URL传参数和目标页面参数获取 ☆* o(≧▽≦)o *☆嗨~我是IT陈寒&#x…

报错:HikariPool-1 - Exception during pool initialization.

问题发现: 原本可以运行的springboot2项目突然无法运行且报错,HikariPool-1 - Exception during pool initialization。 问题分析: 观察报错信息发现是JDBC连接失败,进而搜索HikariPool-1,搜索得知应该是applicatio…

OpenAI的Whisper蒸馏:速度提升6倍的Distil-Whisper

1 Distil-Whisper诞生 Whisper 是 OpenAI 研发并开源的一个自动语音识别(ASR,Automatic Speech Recognition)模型,他们通过从网络上收集了 68 万小时的多语言(98 种语言)和多任务(multitask&am…

vue2 tinymce富文本插件

一、介绍 TinyMCE是一款易用、且功能强大的所见即所得的富文本编辑器。同类程序有:UEditor、Kindeditor、Simditor、CKEditor、wangEditor、Suneditor、froala等等。 TinyMCE的优势: 开源可商用,基于LGPL2.1插件丰富,自带插件基…

【网络安全】伪装IP网络攻击的识别方法

随着互联网的普及和数字化进程的加速,网络攻击事件屡见不鲜。其中,伪装IP的网络攻击是一种较为常见的攻击方式。为了保护网络安全,我们需要了解如何识别和防范这种攻击。 一、伪装IP网络攻击的概念 伪装IP网络攻击是指攻击者通过篡改、伪造I…

MIB 6.1810实验Xv6 and Unix utilities(5)find

难度:moderate Write a simple version of the UNIX find program for xv6: find all the files in a directory tree with a specific name. Your solution should be in the file user/find.c. 题目要求:实现find ,即在某个路径中,找出某…

Ansible密码正确但无法登录目标服务器

问题 通过ansible-playbook批量管理服务器,需要事先编写inventory文件,目标服务器均使用随机密码。在使用ansible-playbook和ansible命令时,均出现其中一台无法登录成功的问题。通过ssh命令,使用inventory中记录得用户名、密码测…

腾讯云重新注册算不算新用户?算!

腾讯云重新注册算新用户,但有以下限制: 首先,实名认证信息不能沿用老账号的信息,必须使用新的信息进行认证。这是为了确保重新注册的账号能够被视为新用户,并享受到新用户的特权和优惠。 腾讯云双十一领9999代金券 h…

聚观早报 |联想集团Q2财季业绩;小鹏汽车Q3营收

【聚观365】11月17日消息 联想集团Q2财季业绩 小鹏汽车Q3营收 微软发布两款自研AI芯片 FAA批准SpaceX再次发射星际飞船 2023 OPPO开发者大会 联想集团Q2财季业绩 全球数字经济领导企业联想集团公布截至2023年9月30日的2023/24财年第二财季业绩:整体营收达到10…

安装应用与免安装应用差异对比

差异 安装的程序和免安装的应用程序之间有以下几个方面的差别: 安装过程:安装的程序需要通过一个安装程序或安装脚本进行安装。这个过程通常会将应用程序的文件和依赖项复制到指定的目录,并进行一些配置和注册操作。免安装的应用程序则不需要…

达芬奇DaVinci Resolve Studio 18.6.3 for Mac

DaVinci Resolve Studio 18是一款专业的视频编辑和调色软件,适用于电影、电视节目、广告等各种视觉媒体的制作。它具有完整的后期制作功能,包括剪辑、调色、特效、音频处理等。 以下是DaVinci Resolve Studio 18的主要特点: - 提供了全面的视…