Mocha を使用して、Nodejs アプリをテスト データベースでテストしていました。各テストの前に DB をリセットするために、完全に機能する次のコードを用意しました。
process.env.NODE_ENV = 'test';
var knex = require('../db/knex');
describe("Add Item", function() {
beforeEach(function(done) {
knex.migrate.rollback()
.then(function() {
knex.migrate.latest()
.then(function() {
return knex.seed.run()
.then(function() {
done();
});
});
});
});
...
それ以来、統合テストのために mocha から mocha-casperjs に切り替えましたが、knex の移行が実行されなくなりました。各フックの前に、まったく同じエラーメッセージが表示されます。
undefined is not an object (evaluating 'knex.migrate.rollback')
phantomjs://platform/new-item.js:12:17
value@phantomjs://platform/mocha-casperjs.js:114:20
callFnAsync@phantomjs://platform/mocha.js:4314:12
run@phantomjs://platform/mocha.js:4266:18
next@phantomjs://platform/mocha.js:4630:13
phantomjs://platform/mocha.js:4652:9
timeslice@phantomjs://platform/mocha.js:12620:27