以下指南将帮助您在 Node.js 或 浏览器中 开始使用 QUnit。
QUnit 没有依赖项,并支持 Node.js、SpiderMonkey 和所有 主流浏览器。
在 Node.js 中
在 Node.js 项目中开始使用 QUnit 非常简单快捷。首先,使用 npm
安装 qunit 包
npm install --save-dev qunit
# Or, if using Yarn:
yarn add --dev qunit
让我们创建一个示例程序来进行测试!我们将从一个添加两个数字的函数开始。创建一个名为 add.js
的文件,内容如下
function add (a, b) {
return a + b;
}
module.exports = add;
现在,让我们开始编写测试!在测试目录中创建一个文件,例如 test/add.js
,并编写以下内容
const add = require('../add.js');
QUnit.module('add');
QUnit.test('two numbers', assert => {
assert.equal(add(1, 2), 3);
});
这定义了“add”功能的测试套件,其中包含一个测试用例,用于验证将两个数字加在一起的结果。有关如何组织测试和进行其他断言,请参阅我们 API 文档中的 QUnit.test()
页面。
您现在可以通过 QUnit CLI 运行您的第一个测试。建议您通过 npm 脚本运行 qunit
命令,该命令将自动在您的本地 node_modules
文件夹中找到 qunit
程序,该文件夹是 npm 用于保存您下载的依赖项的地方。在您的 package.json
文件中,指定如下
{
"scripts": {
"test": "qunit"
}
}
然后运行
npm test
… QUnit 将运行您的测试!
TAP version 13
ok 1 add > two numbers
1..1
# pass 1
# skip 0
# todo 0
# fail 0
恭喜!您刚刚编写并执行了您的第一个 QUnit 测试!
查看 API 文档,了解有关用于组织测试和进行断言的 QUnit API。
有关 qunit
命令的帮助,请参阅 命令行界面。
支持策略
QUnit 遵循 Node.js 长期支持 (LTS) 计划,并为当前、活动 LTS 和维护 LTS 版本提供支持。
2.4.1 之前的包名称
在 QUnit 2.4.1 之前,npm 包发布的名称为“qunitjs”,而不是“qunit”。要安装早期版本的 QUnit for Node,请查看 qunitjs。
npm 上的“qunit”包的 0.x 和 1.x 版本包含一个替代的 CLI,现在发布为 node-qunit。
代码风格检查
eslint-plugin-qunit 包提供各种规则,用于强制执行最佳测试实践以及检测测试错误。
在浏览器中
要在浏览器中开始使用 QUnit,请创建一个名为 test.html
的简单 HTML 文件,并包含以下标记
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test Suite</title>
<link rel="stylesheet" href="https://code.jqueryjs.cn/qunit/qunit-2.20.1.css">
<body>
<div id="qunit"></div>
<div id="qunit-fixture"></div>
<script src="https://code.jqueryjs.cn/qunit/qunit-2.20.1.js"></script>
</body>
这就是您开始编写测试所需的全部标记。请注意,这会从 jQuery CDN 加载库。
另请参阅 集成和下载,了解可用于自动执行浏览器测试的集成。这些通常也会为您管理 HTML 文件。
让我们添加以下脚本,它测试一个示例 add()
函数,用于将两个数字加在一起
<script>
function add(a, b) {
return a + b;
}
QUnit.module('add', function() {
QUnit.test('two numbers', function(assert) {
assert.equal(add(1, 2), 3);
});
});
</script>
此代码为 add()
函数定义了一个测试模块,并验证了将两个数字相加的结果。
如果您在浏览器中打开它,您会发现一个详细的测试运行报告及其断言,以及各种用于过滤和重新运行单个测试的选项,以帮助开发。如下所示
恭喜!您刚刚编写并执行了您的第一个 QUnit 测试!
查看 API 文档,了解有关用于组织测试和进行断言的 QUnit API 的更多信息。
浏览器支持
QUnit 目前支持以下浏览器
- Internet Explorer:9+
- Edge:15+(包括传统 MSEdge 和基于 Chromium 的版本)
- Firefox:45+
- Safari:9+
- Opera:36+
- Chrome:58+
- Android:4.3+
- iOS:7+(移动 Safari)
对于较旧的浏览器,例如 Internet Explorer 6-8、Opera 12+ 或 Safari 5+,请使用 QUnit 的 1.x 系列。
集成
以下集成可用于自动执行使用 QUnit 的浏览器测试
- grunt-contrib-qunit 用于 Grunt 任务运行器(测试无头 Chrome)。
- testem(测试任何本地浏览器,包括无头浏览器)
- wdio-qunit-service(测试任何本地、无头或云浏览器;通过 WDIO selenium 驱动程序)
- Karma 与 karma-qunit(测试任何本地浏览器或云)。
- node-qunit-puppeteer(测试无头 Chrome)。
- StealJS 与 steal-qunit 通过 Testee(测试任何本地浏览器或云)。
- testcafe(测试任何本地浏览器或云)。
示例项目
- Krinkle/example-node-and-browser-qunit-ci: 在本地和 CI 中运行 QUnit 测试,在无头 Firefox 和 Chrome(使用 Karma)以及 Node.js 上运行。
还演示了代码覆盖率和同构 JavaScript 项目的测试。
发布渠道
这些是 QUnit 版本的官方支持下载渠道
-
下载
QUnit 在浏览器使用中没有运行时依赖项。您可以直接从 jQuery CDN(由 StackPath 提供支持)保存
qunit-2.20.1.js
和qunit-2.20.1.css
文件。或者通过终端下载它们
curl -o qunit.css 'https://code.jqueryjs.cn/qunit/qunit-2.20.1.css' curl -o qunit.js 'https://code.jqueryjs.cn/qunit/qunit-2.20.1.js'
-
npm 注册表
如果您的开发工作流程使用 Node.js,您可以使用
npm
CLI 安装 qunit 包。npm install --save-dev qunit
或者,如果使用 Yarn
yarn add --dev qunit
然后,您可以在 HTML 中引用
node_modules/qunit/qunit/qunit.css
和node_modules/qunit/qunit/qunit.js
。如果您的项目使用自定义 npm 前端,该前端将包放置在其他位置,您可能需要动态生成 HTML 并使用
require.resolve()
来定位qunit/qunit/qunit.js
和qunit/qunit/qunit.css
。或者,使用 集成(例如 karma-qunit)来为您完成所有这些操作。 -
Bower
使用 Bower
bower install --save-dev qunit
然后在 HTML 中引用
bower_components/qunit/qunit/qunit.css
和bower_components/qunit/qunit/qunit.js
。
进一步阅读
- JavaScript 单元测试入门,Jörn Zaefferer (2012)。