2016-12-27 102 views
1

我正在多環境設置(DEV,TEST,PREPROD,PROD)中工作,需要編寫可以在環境之間輕鬆切換的測試(使用例如環境作爲輸入參數)。多環境設置中的C#數據庫環境

我的測試需要做數據庫查找。目前我已經爲每個環境創建了一個DBContext。 Image of solution explorer

目前我的測試負責創建正確的數據庫上下文

像這樣:我知道,這是窮人的代碼風格和我正在尋找一種方式來創建一個

if (environment.ToLower().Equals("test")) { 
      var arkiv = new TransformContentCenter_TestEntities1(); 
      var invoicesNotProcesseed = entries 
       .Where(row => !arkiv.Brevarkiv.Any(row1 => row1.ReferenceNumber.Equals(row.invoiceNo) && row1.LetterType=="Invoice")).ToList(); 

數據庫層負責環境處理。但我不知道哪種設置是最佳實踐來處理這種情況,以及如何將其實施到我的解決方案中。任何幫助是非常讚賞:)

+0

你的測試應該真的在做實際的數據庫查詢嗎?只是好奇。 – Amn

+0

@Amn爲什麼不呢?你會如何測試?我所有的數據庫查找都使用SQLite進行測試並在構建服務器上運行,因爲它支持內存數據庫。部署完成後,將使用sql服務器。 –

+0

爲什麼你需要在多個環境下運行單元測試?您只需要對開發者進行驗證,以確認您的應用程序運行正常。您的應用程序應該沒有環境概念,應該在部署時給它所需的變量。構建一次並隨時隨地部署。 –

回答