테스트 데이터베이스를 사용하여 Nodejs 애플리케이션을 테스트하기 위해 Mocha를 사용하고있었습니다. 각 테스트하기 전에 DB를 재설정하기 위해 내가 완벽하게 작동 다음 코드를했다 : 지금 내 통합 테스트를위한 모카 casperjs에 모카로 전환하고, 이후 내가했습니다모카 테스트 간 Knex 마이그레이션 실행
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();
});
});
});
});
...
을 knex 마이그레이션하지 않습니다 운영. 각 후크 전에 정확하게 다음과 같은 오류 메시지가 표시됩니다.
undefined is not an object (evaluating 'knex.migrate.rollback')
phantomjs://platform/new-item.js:12:17
[email protected]://platform/mocha-casperjs.js:114:20
[email protected]://platform/mocha.js:4314:12
[email protected]://platform/mocha.js:4266:18
[email protected]://platform/mocha.js:4630:13
phantomjs://platform/mocha.js:4652:9
[email protected]://platform/mocha.js:12620:27
감사합니다. knex가 필요한 테스트에서 Phantomjs는 피할 것입니다. – cmcloughlin