我正在使用' sails-memory'作为我的Sails单元测试的数据库,理想情况下,希望在单独测试后清除整个数据库。有没有办法可以删除整个数据库?
答案 0 :(得分:7)
我找到了另一种似乎有用的方法。这会发出一个事件,告诉orm挂钩在每次测试之前重新加载。如果使用内存db或带有'drop' migrate选项的磁盘db,它将完成所需的。
beforeEach((done) => {
"use strict";
// Drops database between each test. This works because we use
// the memory database
sails.once('hook:orm:reloaded', done);
sails.emit('hook:orm:reload');
});
答案 1 :(得分:3)
您可以在每次测试之前抬起风帆应用,重建数据库(migrate: 'drop'
)。这是一个例子:
Sails = require('sails/lib/app');
app = Sails();
var testConfig = {
environment: 'test',
port: 1337,
log: {
level: 'error'
},
connections: {
testDB: {
adapter: 'sails-memory'
}
},
connection: 'testDB',
//wipe/drop ALL my data and rebuild models every time
migrate: 'drop'
};
beforeEach(function (done) {
// start sails app for tests
app.lift(testConfig, function (err, sails) {
done(err);
});
});
//tests...