2015-04-18 40 views
0

我的web應用程序依賴於環境變量。 我寫了一個單元測試來確保環境變量不爲空。測試通過我的本地機器,因爲當然,我把環境變量放在我的系統變量中。我必須重新啓動Visual Studio才能識別環境變量。但是,使用雲中的CI構建測試失敗。 TFS構建計劃將其部署到臨時環境,並且環境變量存在於臨時環境以及生產環境中。如果成功,它會將其部署到暫存環境中,然後自動與生產交換。但是,由於單元測試失敗,它並沒有走得太遠。單元測試是否在與實際託管網站不同的環境中運行?如果是這樣,我必須改變我的單元測試策略,以不測試環境變量。那麼我可以創建一個應用程序狀態頁來檢查這些事情。但我想知道是否有人知道這件事。我無法從我的單元測試中檢測到環境變量

回答

1

您在個人計算機中擁有的自定義環境變量也必須位於構建控制器上。 TFS構建在控制器(內部代理)上運行,單元測試運行構建二進制(包裝之前的構建的集成部分)

檢查是否可以在構建控制器中添加環境變量。您可能需要聯繫Build團隊並獲取Build服務器中添加的環境變量。

您也可以選擇

您也可以分類進行單元測試,設置優先級和運行只有某些優先的單元測試「如果單元測試失敗傳遞構建」;比如優先級1。您可以消除未能成爲您希望運行的單元測試優先級的一部分的情況。

希望這有助於!

+1

現在你說出來了,看起來很明顯。單元測試在構建控制器上運行。這與託管應用程序的機器不同。我認爲我在單元測試中測試環境變量的策略本質上是有缺陷的。我將停止嘗試使用單元測試來測試平臺配置和集成問題。 –

相關問題