【问题标题】:Loopback testing with memory as datasource以内存为数据源的环回测试
【发布时间】:2015-07-10 09:14:25
【问题描述】:

在进行集成测试时,我正在尝试使用内存连接器作为数据源。但它似乎总是连接到 mongodb-datasource。

我做过的一个主要 hack 是将每个模型的数据源更改为内存。但是必须有更好的方法来做到这一点。我正在从 gulp 任务运行我的测试。我的 roflmao 模型记忆破解:

var models = require('../server/model-config.json');
  for (var key in models) {
    var model = loopback.getModel(key);
    loopback.configureModel(model, {dataSource: memory});
  }
}

有没有办法更改应用程序的数据源?还是我必须更改每个单独模型的数据源..?

这样做的一种方法是在测试期间更改环境变量,但到目前为止,没有运气。我正在使用 gulp-task 预处理来执行此操作。

希望通过更改环境变量,它将使用 datasources.integrationtesting.js,其中我有内存作为数据源。

我的吞咽任务:

return gulp.src('integration-tests/*.js')
.pipe($.preprocess({context: {NODE_ENV: 'integrationtesting'}}))
.pipe($.mocha())

我正在使用:

  • 环回测试
  • 大口喝摩卡

欣赏任何 cmets.. :)

【问题讨论】:

  • 解决这个问题的方法是能够在测试期间更改 NODE_ENV...

标签: node.js environment-variables loopbackjs strongloop


【解决方案1】:

我认为您正在寻找的是environment-specific configuration files。基本上,您只需创建一个名称相同但在不同环境中实现不同的数据源。您的datasources.json 文件将是默认文件,但如果NODE_ENV 设置为development,则将使用datasources.development.json

从那个链接的页面,你可能在 datasources.json 中有这个:

{
  db: {
    connector: 'mongodb',
    database: 'myapp',
    user: 'myapp',
    password: 'secret'
  }
}

这在 datasources.development.json 中:

{
  db: {
    connector: 'memory'
  }
} 

【讨论】:

  • 如前所述,我在 gulp 任务中启动了测试。我尝试将环境更改为“测试”以允许特定于环境的配置,但它似乎没有使用测试配置..
猜你喜欢
  • 2020-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-02
  • 2019-05-06
  • 2015-06-30
  • 1970-01-01
相关资源
最近更新 更多