postgresql - 使用 sequelize.js 对 sails.js 进行单元测试

标签 postgresql unit-testing sails.js sequelize.js waterline

我写了一些unit test in sails with waterline(defaultI orm) 工作正常,但是当我尝试使用 sequelize orm 时出现错误。 我正在使用以下内容:

  1. 继承orm
  2. sails-sequelize-hook
  3. 摩卡和柴
  4. 超测
  5. "pg-hstore": "^2.3.2"
  6. "pg": "^4.4.1"

我的文件夹结构是:

  ./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 test/bootstrap.test.js test/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(生成的 sails )。它会在尝试提升之前加载 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'));

关于postgresql - 使用 sequelize.js 对 sails.js 进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32091883/

相关文章:

postgresql - PSQL 脚本中的变量无需创建函数

unit-testing - clojure 单元测试与重定义

asp.net-mvc - 如何从 ActionResult 获取模型?

c++ - 使用 qExec 创建 Qt 测试套件

postgresql - 如何通过传递一周中的任何日期来仅检索星期四日期

python - 在 PostgreSQL 上使用 CTE() 进行 SQLAlchemy 查询

sails.js - SailsJS API 文件上传

javascript - 嵌套异步 JavaScript 函数

javascript - Sails.js 0.11 和 Passport : 'Missing Credentials' error

string - 在特定字符处拆分字符串 SQL-Standard