在进行集成测试时,我尝试使用内存连接器作为数据源。但似乎总是连接到mongodb-datasource。
我所做的一个主要工作是将每个模型的数据源更改为内存。但必须有更好的方法来做到这一点。我从gulp-task运行我的测试。我的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())
我正在使用:
感谢任何评论.. :)
答案 0 :(得分:7)
我认为你所寻找的是environment-specific configuration files。基本上,您只需创建一个具有相同名称但在不同环境中具有不同实现的数据源。您的$expect_out
文件是默认文件,但如果datasources.json
设置为datasources.development.json
,则会使用NODE_ENV
。
从该链接页面,你可能在datasources.json中有这个:
development
这是在datasources.development.json:
{
db: {
connector: 'mongodb',
database: 'myapp',
user: 'myapp',
password: 'secret'
}
}