2015-04-30 11 views
8

Próbuję użyć złącza pamięci jako źródła danych podczas testowania integracji. Ale wydaje się, że zawsze łączy się ze źródłem danych mongodb.Test sprzężenia zwrotnego z pamięcią jako źródłem danych

Jednym z głównych hacków, które zrobiłem, jest zmiana źródła danych dla każdego modelu na pamięć. Ale musi być lepszy sposób na zrobienie tego. Prowadzę moje testy od zadania. Mój model roflmao-pamięć-hack:

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

Czy istnieje sposób na zmianę źródła danych dla aplikacji? Czy muszę zmienić źródło danych dla każdego modelu ..?

Sposób na to polega na zmianie zmiennej środowiskowej podczas testowania, ale jak dotąd nie ma szczęścia .. Robię to z procesem preprocesorów gulp.

Mam nadzieję, że zmieniając zmienną środowiskową, użyjemy datasources.integrationtesting.js, w której mam pamięć jako źródło danych.

My łyk-zadanie:

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

Używam:

  • loopback testowania
  • łyk-mokka

wdzięczni za wszelkie komentarze ..:)

+0

Co by naprawić to, aby móc zmienić NODE_ENV podczas testowania ... –

Odpowiedz

7

Myślę, że co ty ponowne szukanie to environment-specific configuration files. Zasadniczo wystarczy utworzyć źródło danych o tej samej nazwie, ale różne implementacje w różnych środowiskach. Twój plik datasources.json będzie domyślnie ustawiony, ale datasources.development.json zostanie użyty, jeśli NODE_ENV ustawiono na development.

Od tej połączonej stronie, możesz mieć to w datasources.json:

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

I to w datasources.development.json:

{ 
    db: { 
    connector: 'memory' 
    } 
} 
+2

Jak wyjaśniono, uruchamiam testy w zadaniu gulp. Próbuję zmienić środowisko na "testowe", aby umożliwić konfigurację specyficzną dla środowiska, ale wydaje się, że nie używa ono konfiguracji testowych. –

Powiązane problemy