Sails.js:如何实际运行testing

我对帆,节点和js是全新的,所以我可能会漏掉一些明显的东西。

我正在使用风帆0.10.5和节点0.10.33。

在sails.js文档中有一个关于testinghttp://sailsjs.org/#/documentation/concepts/Testing的页面,但是它并没有告诉我如何真正运行它们。

我已经根据该文档设置了目录,添加了一个名为test / unit / controllers / RoomController.test.js的testing,现在我希望它运行。

没有“帆testing”命令或类似的东西。 我也没有find有关如何添加任务的任何迹象,所以testing总是在“帆升”之前运行。

在we.js中查看我的testing结构: https : //github.com/wejs/we-example/tree/master/test

你可以复制和粘贴你的sails.js应用程序,并删除bootstrap.js中的we.js插件function

并改变你package.json使用npmtesting中设置正确的摩卡命令: https : //github.com/wejs/we-example/blob/master/package.json#L10

– 编辑 –

我创build了一个简单的sails.js 0.10.xtesting示例,请参阅: https : //github.com/albertosouza/sails-test-example

UPDATE-2:在以这种方式运行unit testing需要花费多less精力之后,我决定创build一个模块来加载模型,并像帆一样把它们变成全局variables,但是没有太多花费。 甚至当你去掉每一个钩子,但是取决于机器的orm-loader,它可以很容易地花费几秒钟,没有任何testing!,并且当你增加模型它变得更慢,所以我创build了这个叫做waterline-loader的模块,所以你只能加载基础知识(其速度大约快10倍),模块不稳定,需要testing,但欢迎您使用或修改它以满足您的需求,或者帮助我在这里改进它 – > https:// github.com/Zaggen/waterline-loader


更新-1:我已经添加了运行与摩卡testing运行testing部分下的文档相关的信息。


只是为了扩大别人的话(特别是阿尔贝托·索萨所说的)。

你需要两个步骤,以使摩卡与帆风帆工作,只要你想。 首先,如sails.js Docs中所述,在运行testing之前,需要提起服务器,然后在根path中创build一个名为bootstrap.test.js的文件(可以调用它)可选)你的testing(testing/ bootstrap.test.js),将首先由mocha调用,然后它会调用你的testing文件。

 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中,在脚本键上添加这一行(忽略注释)

  // package.json .... scripts": { // Some config "test": "mocha test/bootstrap.test.js test/**/*.test.js" }, // More config 

这将加载bootstrap.test.js文件,解除你的sails服务器,然后运行你所有使用'testname.test.js'格式的testing,如果你喜欢,你可以把它改成'.spec.js'。

现在你可以使用npm test来运行你的testing。

请注意 ,您可以在不修改package.json的情况下执行相同的操作,并在命令行中inputmocha test/bootstrap.test.js test/**/*.test.js

PST:有关bootstrap.test.js的更详细的configuration检查Alberto Souza的答案或直接检查这个文件在hist github回购

鉴于他们没有给予特别的指示,并且他们使用摩卡,我希望当你在test目录时,从命令行运行mocha将起作用。

Sails使用摩卡作为默认的testing框架。 但是Sails不能自行处理testing执行。

所以你必须使用mocha命令手动运行它。

但是有一篇文章如何将所有的风帆材料纳入testing。 http://sailsjs.org/#/documentation/concepts/Testing