Петлевое тестирование с памятью в качестве источника данных

Я пытаюсь использовать разъем памяти в качестве источника данных при проведении интеграционного тестирования. Но, похоже, он всегда подключается к источнику данных mongodb.

Один большой хак, который я сделал, это изменить источник данных для каждой модели на память. Но должен быть лучший способ сделать это. Я запускаю свои тесты из задачи 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())

Я использую:

  • loopback-тестирование
  • глоток мокко

Рад любым комментариям.. :)


person Are Almaas    schedule 30.04.2015    source источник
comment
Что бы исправить это, так это возможность изменить NODE_ENV во время тестирования...   -  person Are Almaas    schedule 30.04.2015


Ответы (1)


Я думаю, что вы ищете файлы конфигурации для конкретной среды. По сути, вы просто создаете источник данных с тем же именем, но с разными реализациями в разных средах. Ваш файл datasources.json будет использоваться по умолчанию, но datasources.development.json будет использоваться, если NODE_ENV будет установлено на development.

На этой связанной странице у вас может быть это в datasources.json:

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

А это в datasources.development.json:

{
  db: {
    connector: 'memory'
  }
} 
person Jordan Kasper    schedule 01.05.2015
comment
Как объяснено, я запускаю тесты в задаче gulp. Я пытаюсь изменить тестовую среду, чтобы разрешить настройку для конкретной среды, но, похоже, она не использует тестовые конфигурации. - person Are Almaas; 15.05.2015