使用桶设置Sails 0.10.x灯具,但数据库中没有一个

时间:2014-09-18 05:42:43

标签: testing sails.js fixtures

从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的其他夹具解决方案持开放态度。感谢。

1 个答案:

答案 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,并且您的连接配置正确(有关详细信息,请参阅上述示例)。