Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Sails.js:如何实际运行测试_Javascript_Node.js_Unit Testing_Sails.js_Mocha.js - Fatal编程技术网

Javascript Sails.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的测试,现在我希望它能够运行 没有“航行测试”命令或类似命令。我也没有发现任何关于如何添加任务的迹象,因此测试总是在“升帆”之前进行。考虑到他们没有给出

我对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