Javascript Sails.js:如何实际运行测试
我对sails、node和js基本上都是新手,所以我可能遗漏了一些明显的东西 我使用的是sails 0.10.5和node 0.10.33 在sails.js文档中有一个关于测试的页面,但它没有告诉我如何实际运行测试 我已经根据该文档设置了目录,添加了一个名为test/unit/controllers/RoomController.test.js的测试,现在我希望它能够运行Javascript Sails.js:如何实际运行测试,javascript,node.js,unit-testing,sails.js,mocha.js,Javascript,Node.js,Unit Testing,Sails.js,Mocha.js,我对sails、node和js基本上都是新手,所以我可能遗漏了一些明显的东西 我使用的是sails 0.10.5和node 0.10.33 在sails.js文档中有一个关于测试的页面,但它没有告诉我如何实际运行测试 我已经根据该文档设置了目录,添加了一个名为test/unit/controllers/RoomController.test.js的测试,现在我希望它能够运行 没有“航行测试”命令或类似命令。我也没有发现任何关于如何添加任务的迹象,因此测试总是在“升帆”之前进行。考虑到他们没有给出
没有“航行测试”命令或类似命令。我也没有发现任何关于如何添加任务的迹象,因此测试总是在“升帆”之前进行。考虑到他们没有给出特殊指示,而且他们使用摩卡,当您在
test
的parent目录中时,我希望从命令行运行mocha
可以工作。Sails使用mocha作为默认测试框架。
但是sail本身并不处理测试执行
因此,您必须使用mocha
命令手动运行它
但是有一篇文章介绍了如何将所有的sail内容都包含在测试中。
请参见we.js中的我的测试结构: 您可以复制并粘贴到sails.js应用程序中,并删除bootstrap.js中的we.js插件功能 并将you package.json更改为在npm测试中使用set correct mocha命令: --编辑--
我创建了一个简单的sails.js 0.10.x测试示例,请参见:更新-2:在对以这种方式运行单元测试所需的时间进行了一点小的思考之后,我决定创建一个模块来加载模型并将其转换为全局模型,就像sails一样,但不需要花费太多时间。即使你去掉了所有的钩子,但是orm装载机取决于机器,不需要任何测试就可以轻松地用上几秒钟!,当你添加模型时,它会变慢,所以我创建了这个模块,名为,这样你就可以加载基本的(大约快10倍),这个模块不稳定,需要测试,但是欢迎你使用它或修改它以满足你的需要,或者帮我在这里改进->
更新-1: 我已将与使用摩卡运行测试相关的信息添加到运行测试部分
只是为了扩展其他人所说的(特别是阿尔贝托·苏扎所说的) 你需要两个步骤,才能使摩卡咖啡与你想要的帆一起工作。首先,如中所述,您需要在运行测试之前提升服务器,为此,您在测试(test/bootstrap.test.js)的根路径(可选)中创建一个名为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键上添加这一行(忽略注释)
这将加载bootstrap.test.js文件,提升sails服务器,然后运行所有使用“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中查看此,非常感谢。我现在可以使用
npm test
来运行测试。
// package.json ....
scripts": {
// Some config
"test": "mocha test/bootstrap.test.js test/**/*.test.js"
},
// More config