我写了一些单元测试在风帆与水线(默认形式)这工作得很好,但当我尝试与sequelize形式我得到的错误。
- sequelize form
- sails-sequelize-hook
- 摩卡茶
- supertest 2.3.2
- "pg-hstore":"^" 4.4.1
- "pg":"^"
我的文件夹结构是:
./myApp ├── api ├── assets ├── ... ├── test │ ├── unit │ │ ├── controllers │ │ │ └── UsersController.test.js │ │ ├── models │ │ │ └── Users.test.js │ │ └── ... │ ├── fixtures │ ├── ... │ ├── bootstrap.test.js │ └── mocha.opts └── views
我的bootstrap.test.js文件是:
var Sails = require('sails'),sails;
before(function(done) {
this.timeout(5000);
Sails.lift({
}, function(err, server) {
sails = server;
if (err) return done(err);
done(err, sails);
});
});
after(function(done) {
Sails.lower(done);
});
我的连接/配置文件是:
somePostgresqlServer: {
user: 'postgres',
password: 'mypassword',
database: 'postgres',
dialect: 'postgres',
options: {
dialect: 'postgres',
host : 'localhost',
port : 5432,
logging: true
}
}
,在config/model.js文件中是:
connection:"somePostgresqlServer"
和我的。sailsrc是:
"hooks": {
"blueprints": false,
"orm": false,
"pubsub": false
}
我在User.test.js中写了一些测试
当我运行mocha测试/bootstrap.test.js测试/unit/**/*.test.js
我得到错误:
error: In model (user), invalid connection :: { user: 'postgres',
password: 'mypassword',
database: 'postgres',
dialect: 'postgres',
options:
{ dialect: 'postgres',
host: 'localhost',
port: 5432,
logging: [Function: _writeLogToConsole] } }
error: Must contain an `adapter` key referencing the adapter to use.
npm ERR! Test failed. See above for more details.
我做错了什么主意
Alexis N-o的问题实际上是一个很好的提示。
,如果你看一下app.js(生成的那个)。它将加载rc之前试图解除:)所以只是添加相同的代码在你的测试bootstrap js将修复它。
var rc;
try {
rc = require('rc');
} catch (e0) {
try {
rc = require('sails/node_modules/rc');
} catch (e1) {
console.error('Could not find dependency: `rc`.');
console.error('Your `.sailsrc` file(s) will be ignored.');
console.error('To resolve this, run:');
console.error('npm install rc --save');
rc = function () { return {}; };
}
}
// Start server
sails.lift(rc('sails'));