Ubuntu Node.js如何进行测试和调试
导读:Ubuntu 下 Node.js 的测试与调试实践 一 环境准备 确认 Node.js 与 npm 已安装:运行 node --version、npm --version。如未安装,可从 Node.js 官网获取适合 Ubuntu 的版本...
Ubuntu 下 Node.js 的测试与调试实践
一 环境准备
- 确认 Node.js 与 npm 已安装:运行
node --version、npm --version。如未安装,可从 Node.js 官网获取适合 Ubuntu 的版本并安装。完成后建议初始化项目:npm init -y,以便管理依赖与脚本。
二 单元测试
- 常用框架与生态
- 测试运行器与断言:Mocha(灵活、生态丰富)、Jest(开箱即用,内置断言/快照/模拟/覆盖率)、Ava(轻量并行)、Jasmine(BDD 风格)。断言可用 Chai、power-assert;模拟用 Sinon;HTTP 场景用 supertest;覆盖率可用 nyc/c8(V8 原生覆盖支持)。
- 快速上手示例(Mocha + assert)
- 安装:
npm i -D mocha - 代码
index.js:function add(a, b) { return a + b; } module.exports = add; - 测试
test/add.test.js:const assert = require('assert'); const add = require('../index'); describe('add', () => { it('should return the sum of two numbers', () => { assert.strictEqual(add(1, 2), 3); assert.strictEqual(add(-1, 1), 0); } ); } ); - 运行:
npx mocha test/**/*.test.js
- 安装:
- 运行与覆盖
- Jest 示例:安装
npm i -D jest,在package.json添加脚本"test": "jest",运行npm test;生成覆盖率npm test -- --coverage。 - 覆盖率工具:使用 nyc 或 c8 配合 Mocha/Jest 生成报告(如
npx nyc npm test)。
- Jest 示例:安装
三 调试
- 内置调试与 Chrome DevTools
- 启动方式:
- 普通附加:
node --inspect app.js(默认调试端口 9229) - 首行暂停:
node --inspect-brk app.js
- 普通附加:
- 打开 Chrome/Edge,访问
chrome://inspect或edge://inspect,在 Remote Target 中点击 inspect 进入开发者工具,设置断点、查看调用栈与变量。
- 启动方式:
- VS Code 调试
- 本地调试:在 运行与调试 中创建
launch.json,选择 Node.js 环境,常用配置:{ "version": "0.2.0", "configurations": [ { "type": "node", "request": "launch", "name": "Launch Program", "program": "${ workspaceFolder} /app.js", "console": "integratedTerminal" } ] } - 自动附加:命令面板执行 Debug: Toggle Auto Attach,选择 Only With Flag,随后在终端以
--inspect启动应用即可在 VS Code 内命中断点。
- 本地调试:在 运行与调试 中创建
- 远程服务器调试(VSCode Remote-SSH)
- 在本地安装 Remote Development 插件,使用 Remote-SSH 连接到 Ubuntu 服务器;在远端打开项目后,直接使用 VS Code 的调试功能(断点、变量、调用栈等)。
四 生产可观测性 日志与问题定位
- 高效日志
- 使用 debug 模块按命名空间输出调试信息:
DEBUG=http:* node app.js;很多 npm 包(如 Express/Koa)内置支持。 - 高性能日志库 pino:结构化、低开销,适合高并发场景。
- 使用 debug 模块按命名空间输出调试信息:
- 快速定位技巧
- 临时使用 console.log/error 辅助排查;结合断点与 Sources 面板观察异步回调与闭包变量;必要时在 Remote Target 中远程检查运行态。
五 常见问题与排查清单
- 端口与访问
- 调试默认端口 9229;如远程调试,确保服务器防火墙/安全组放行该端口,或使用 SSH 隧道:
ssh -L 9229:localhost:9229 user@server后本地访问chrome://inspect。
- 调试默认端口 9229;如远程调试,确保服务器防火墙/安全组放行该端口,或使用 SSH 隧道:
- 断点未命中
- 确认以
--inspect启动;使用 –inspect-brk 确保首行暂停;检查 VS Code 是否选中正确配置与入口文件;远程场景确认已通过 Remote-SSH 打开远端工作区。
- 确认以
- 版本与依赖
- 使用
node --version/npm --version确认环境一致;依赖变更后执行npm install并清理node_modules/.cache(如适用)以避免不一致。
- 使用
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu Node.js如何进行测试和调试
本文地址: https://pptw.com/jishu/775723.html
