从Barrels作者自己的this example(使用Sails 0.9.x)开始,基于Barrels' repo(使用Sails 0.10.x)和我的项目设置稍作修改,这是我的配置:< / p>
<Project>/test/specHelper.js
(这是测试引导程序):
'use strict';
var Sails = require('sails')
, Barrels = require('barrels')
, barrels, fixtures;
before(function(done) {
Sails.lift(
{
// Configuration for testing
environment: 'test',
log: {
level: 'error'
},
connections: {
test: {
adapter: 'sails-memory'
}
},
models: {
connection: 'test'
},
port: 98765
},
function(err, sails) {
if (err)
return done(err);
// Load fixtures
barrels = new Barrels(process.cwd() + '/tests/fixtures');
fixtures = barrels.data;
barrels.populate(function(err) {
done(err, sails);
});
}
);
});
after(function(done) {
// Clear fixtures, etc.
Sails.lower(done);
});
这是一个spec文件<Project>/tests/EntitySpec.js
var chai = require('chai');
, expect = chai.expect;
describe('Entity', function() {
describe('class methods', function() {
describe('#a_method', function() {
it('does something', function(done) {
Entity.find().then(function(results) {
console.log('in database', results);
done();
}).catch(done);
});
});
});
});
但是测试数据库是空的。在spec文件中运行barrels.populate
并不能解决这个问题(尽管规范不会引发任何错误)。我对Sails.js的其他夹具解决方案持开放态度。感谢。
答案 0 :(得分:1)
The example you're referring to已针对新的Barrels
API进行了更新,并且正在通过测试。
否则,检查对象是否在fixtures
变量中:如果它是空的,请确保您提供了正确的JSON文件路径(您正在传递process.cwd() + '/tests/fixtures'
,但是您的助手在[{1}}中,您还有<Project>/test/specHelper.js
;是<Project>/tests/EntitySpec.js
还是test
?)。
如果tests
存在,请确保您将正确的配置传递给fixtures
,并且您的连接配置正确(有关详细信息,请参阅上述示例)。