UPDATE-2: 在苦苦思索以这种方式运行单元测试需要多少时间之后,我决定创建一个模块来加载模型并将它们转换为全局变量,就像sails 一样,但没有采取这么多。即使你去掉了每个钩子,但是 orm-loader 取决于机器,它可以很容易地花费几秒钟而不需要任何测试!当你添加模型时它会变慢,所以我创建了这个名为 waterline-loader 的模块,所以你只能加载基础(大约快 10 倍),模块不稳定需要测试,但欢迎您使用它或修改它以满足您的需求,或者在这里帮助我改进它 -> https://github.com/Zaggen/waterline-loader
UPDATE-1:
我已将与使用 mocha 运行测试相关的信息添加到 Running tests 部分下的 docs。
只是为了扩展其他人所说的话(特别是 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 键上,添加这一行(忽略 cmets)
// package.json ....
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 答案或直接查看 hist github repo 中的 file