首页主机资讯Ubuntu Node.js如何进行测试和调试

Ubuntu Node.js如何进行测试和调试

时间2025-12-19 00:55:03发布访客分类主机资讯浏览1289
导读:Ubuntu 下 Node.js 的测试与调试实践 一 环境准备 确认 Node.js 与 npm 已安装:运行 node --version、npm --version。如未安装,可从 Node.js 官网获取适合 Ubuntu 的版本...

Ubuntu 下 Node.js 的测试与调试实践

一 环境准备

  • 确认 Node.jsnpm 已安装:运行 node --versionnpm --version。如未安装,可从 Node.js 官网获取适合 Ubuntu 的版本并安装。完成后建议初始化项目:npm init -y,以便管理依赖与脚本。

二 单元测试

  • 常用框架与生态
    • 测试运行器与断言:Mocha(灵活、生态丰富)、Jest(开箱即用,内置断言/快照/模拟/覆盖率)、Ava(轻量并行)、Jasmine(BDD 风格)。断言可用 Chaipower-assert;模拟用 Sinon;HTTP 场景用 supertest;覆盖率可用 nyc/c8(V8 原生覆盖支持)。
  • 快速上手示例(Mocha + assert)
    1. 安装:npm i -D mocha
    2. 代码 index.js
      function add(a, b) {
           return a + b;
       }
          
      module.exports = add;
          
      
    3. 测试 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);
      
        }
          );
      
      }
          );
      
      
    4. 运行:npx mocha test/**/*.test.js
  • 运行与覆盖
    • Jest 示例:安装 npm i -D jest,在 package.json 添加脚本 "test": "jest",运行 npm test;生成覆盖率 npm test -- --coverage
    • 覆盖率工具:使用 nycc8 配合 Mocha/Jest 生成报告(如 npx nyc npm test)。

三 调试

  • 内置调试与 Chrome DevTools
    • 启动方式:
      • 普通附加:node --inspect app.js(默认调试端口 9229
      • 首行暂停:node --inspect-brk app.js
    • 打开 Chrome/Edge,访问 chrome://inspectedge://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:结构化、低开销,适合高并发场景。
  • 快速定位技巧
    • 临时使用 console.log/error 辅助排查;结合断点与 Sources 面板观察异步回调与闭包变量;必要时在 Remote Target 中远程检查运行态。

五 常见问题与排查清单

  • 端口与访问
    • 调试默认端口 9229;如远程调试,确保服务器防火墙/安全组放行该端口,或使用 SSH 隧道ssh -L 9229:localhost:9229 user@server 后本地访问 chrome://inspect
  • 断点未命中
    • 确认以 --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
Ubuntu inotify如何与其他编程语言结合 如何在Ubuntu上解决Node.js依赖问题

游客 回复需填写必要信息