Ubuntu 下常用的 JavaScript 测试工具
一 核心测试框架与断言库
- Jest:开箱即用、零配置、适合Node.js 与前端项目,支持快照测试、Mock、覆盖率等,生态完善。
- Mocha:功能丰富、适配Node 与浏览器,异步测试体验好,常与断言库组合使用。
- Jasmine:行为驱动(BDD)风格,不依赖浏览器与 DOM,上手简单,适合纯 JS/Node 项目。
- QUnit:轻量易用的单元测试框架,历史上广泛用于 jQuery 生态。
- Cucumber.js:支持BDD 行为驱动开发,用自然语言描述用例,便于业务与开发协作。
- 断言库 Chai:提供 BDD/TDD 风格断言,可与 Mocha/Jest 等框架灵活搭配。
- AVA:强调并发执行与现代化特性,适合需要高并发跑测的场景。
二 端到端与无头浏览器测试
- CasperJS:基于 PhantomJS/SlimerJS 的导航脚本与测试工具,适合页面流程自动化与端到端测试(注意 PhantomJS 已停止维护,建议优先使用 Playwright/Puppeteer)。
- Zombie.js:在模拟环境中测试客户端 JS,无需真实浏览器,轻量快速,适合逻辑回归与表单交互等。
三 快速上手示例 Jest
- 安装 Node.js 与 npm(Ubuntu 常见方式):
- 命令:
sudo apt update && sudo apt install nodejs npm
- 验证:
node -v、npm -v
- 初始化项目并安装 Jest:
npm init -y
npm install --save-dev jest
- 配置脚本(package.json):
"scripts": { "test": "jest" }
- 编写被测代码与测试:
- 代码:sum.js
function sum(a, b) { return a + b; }
module.exports = sum;
- 测试:sum.test.js
const sum = require('./sum');
test('adds 1 + 2 to equal 3', () => {
expect(sum(1, 2)).toBe(3);
});
- 运行测试:
四 选型建议
- 纯 Node.js 项目优先:Jest(配置少、功能全)或 Mocha + Chai(灵活组合)。
- 需要BDD 协作与可读性:选 Cucumber.js。
- 前端单页应用(SPA)端到端:优先 Playwright/Puppeteer;历史项目可用 CasperJS/Zombie.js。
- 追求并发与快速反馈:选 AVA。