更新-2:在使用这种方式运行单元测试时遇到了一些困难,我决定创建一个模块来加载模型并将它们转换为全局变量,就像 sails 一样,但不会花费太多时间。即使你去掉每个钩子,只留下 orm-loader,但根据机器的性能,它仍然可能需要几秒钟,而且添加模型后速度会变慢,因此我创建了这个名为
waterline-loader 的模块,这样你就可以只加载基本内容(快了大约10倍),这个模块还不稳定,需要测试,但你可以使用它或修改它以适应你的需要,或者帮助我在这里改进 ->
https://github.com/Zaggen/waterline-loader
更新-1:我已在
文档的
运行测试部分中添加了有关使用mocha运行测试的信息。
仅仅是为了扩展其他人所说的(特别是Alberto Souza所说的)。
如果你想让mocha按照你的意愿与sails一起工作,你需要两个步骤。首先,如sails.js文档所述,你需要在运行测试之前启动服务器,并且为此,你需要在测试的根路径(test/bootstrap.test.js)下创建一个名为bootstrap.test.js的文件(它可以被任何你喜欢的名称所替代),这个文件将首先被mocha调用,然后再调用你的测试文件。
var Sails = require('sails'),
sails;
before(function(done) {
Sails.lift({
}, function(err, server) {
sails = server;
if (err) return done(err);
done(err, sails);
});
});
after(function(done) {
sails.lower(done);
});
现在在你的package.json文件中,找到scripts键,并添加以下代码(忽略注释):
scripts": {
// Some config
"test": "mocha test/bootstrap.test.js test*.test.js"
},
// More config
这将加载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的答案或直接查看他的github存储库中的此文件。
file
npm test
来运行测试了。 - kvbx