删除整个sails-memory数据库?

时间:2014-09-26 16:08:52

标签: sails.js waterline

我正在使用' sails-memory'作为我的Sails单元测试的数据库,理想情况下,希望在单独测试后清除整个数据库。有没有办法可以删除整个数据库?

2 个答案:

答案 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...