[英]Sails.js: How to actually run tests
一般来说,我对sails、node 和js 完全陌生,所以我可能会遗漏一些明显的东西。
我正在使用帆 0.10.5 和节点 0.10.33。
在sails.js 文档中有一个关于测试的页面http://sailsjs.org/#/documentation/concepts/Testing ,但它没有告诉我如何实际运行它们。
我已经根据该文档设置了目录,添加了一个名为 test/unit/controllers/RoomController.test.js 的测试,现在我想让它运行。
没有“sails test”命令或类似的命令。 我也没有找到任何关于如何添加任务的迹象,所以测试总是在“扬帆”之前运行。
UPDATE-2:在以这种方式运行单元测试需要多少努力之后,我决定创建一个模块来加载模型并将它们像风帆一样将它们转换为全局变量,但不需要太多。 即使你去掉每个钩子,但根据机器的不同,orm-loader 也可以很容易地花费几秒钟而无需任何测试!,并且当你添加模型时,它会变得更慢,所以我创建了这个名为waterline-loader 的模块,所以你可以只加载基础知识(大约快 10 倍),模块不稳定,需要测试,但欢迎您使用或修改它以满足您的需要,或者在这里帮助我改进它 -> https:// github.com/Zaggen/waterline-loader
UPDATE-1:我已将与使用 mocha 运行测试相关的信息添加到运行测试部分下的文档中。
只是为了扩展其他人所说的(特别是 Alberto Souza 所说的)。
您需要两个步骤才能让摩卡咖啡随心所欲地与风帆一起工作。 首先,如sails.js Docs中所述,您需要在运行测试之前提升服务器,为此,您在根路径(可选)你的测试 (test/bootstrap.test.js) 将首先被 mocha 调用,然后它会调用你的测试文件。
var Sails = require('sails'),
sails;
before(function(done) {
Sails.lift({
// configuration for testing purposes
}, function(err, server) {
sails = server;
if (err) return done(err);
// here you can load fixtures, etc.
done(err, sails);
});
});
after(function(done) {
// here you can clear fixtures, etc.
sails.lower(done);
});
现在在你的 package.json 中,在 scripts 键上添加这一行(忽略注释)
// package.json ....
scripts": {
// Some config
"test": "mocha test/bootstrap.test.js test/**/*.test.js"
},
// More config
这将加载 bootstrap.test.js 文件,提升您的风帆服务器,然后运行所有使用“testname.test.js”格式的测试,如果您愿意,可以将其更改为“.spec.js”。
现在您可以使用npm test
来运行您的测试。
请注意,您可以在不修改 package.json 的情况下执行相同的操作,并在命令行中输入mocha test/bootstrap.test.js test/**/*.test.js
PST:有关 bootstrap.test.js 的更详细配置,请查看 Alberto Souza 的回答或直接在 hist github repo 中查看此文件
在we.js中查看我的测试结构: https : //github.com/wejs/we-example/tree/master/test
您可以复制并粘贴到您的 Sails.js 应用程序中并删除 bootstrap.js 中的 we.js 插件功能
并更改 package.json 以在 npm 测试中使用设置正确的 mocha 命令:https ://github.com/wejs/we-example/blob/master/package.json#L10
- 编辑 -
我创建了一个简单的sails.js 0.10.x 测试示例,请参见: https : //github.com/albertosouza/sails-test-example
鉴于他们没有给出特殊说明并且他们使用 Mocha,我希望当您在test
的父目录中时从命令行运行mocha
会起作用。
Sails 使用 mocha 作为默认测试框架。 但是 Sails 本身并不处理测试执行。
所以你必须使用mocha
命令手动运行它。
但是有一篇文章如何将所有 Sails 内容包含到测试中。 http://sailsjs.org/#/documentation/concepts/Testing
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.