2015-04-30 24 views
8

我正在嘗試在執行集成測試時使用內存連接器作爲數據源。但它似乎總是連接到mongodb數據源。使用內存作爲數據源進行環回測試

我做的一件大事就是將每個模型的數據源更改爲內存。但是,一定有更好的方法來做到這一點。我從一個吞嚥任務運行我的測試。我的roflmao模型 - 內存黑客:

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

有什麼辦法來改變應用程序的數據源?或者我必須更改每個模型的數據源..?

這樣做的一個方法是在測試過程中更改環境變量,但到目前爲止,沒有運氣..我正在用吞吐任務預處理來做這件事。

希望通過改變環境變量,它會使用datasources.integrationtesting.js,其中我有內存作爲數據源。

我一飲而盡任務:

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

我使用:

  • 環回測試功能
  • 一飲而盡,摩卡

欣賞任何意見..:)

+0

什麼可以解決這個問題是要能夠改變測試期間的NODE_ENV ... –

回答

7

我覺得你'重新尋找是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' 
    } 
} 
+2

正如所解釋的,我在吞嚥任務中啓動測試。我嘗試將環境更改爲「測試」以允許特定於環境的配置,但似乎並未使用test-configs .. –

相關問題