2012-05-15 36 views
2

我需要將自定義構建設置傳遞給單元測試。我知道我可以在代碼中使用System.EnvironmentVariable。我想知道如何將一個參數添加到TFS構建定義中,並將其作爲代碼中的env參數進行讀取。它必須由我們的發佈工程師在構建定義中指定。如何將構建參數傳遞給我的.NET單元測試

回答

0

爲什麼不把它放在app.config中並使用ConfigurationManager來讀取它?

+0

我們大量使用.NET配置已經和問題能夠覆蓋它在每個版本分支的基礎上。我們最終使用了構建定義自定義屬性,該屬性很簡單,但很簡單 –

3

這聽起來像你想用preprocessor directive有條件地執行一些代碼。

[TestMethod] 
public void MyTestMethod() 
{ 
    bool buildArgumentIsSet = false; 

    #if MY_BUILD_ARGUMENT 
     buildArgumentIsSet = true 
    #endif 

    Assert.IsFalse(
     buildArgumentIsSet, 
     "The evil release engineer set the build argument.");   
} 

你發佈工程師則可以用/define參數編譯,如

/define:MY_BUILD_ARGUMENT 
+1

恐怕我們針對所有部署都有一個一次構建的環境策略,以確保一致性,並且不會出現差異。我們最終爲Build Definition添加了一個自定義屬性,這會導致生成一個prop文件,以便我們的配置API可以檢測/使用它。 –

相關問題