[英]Run unit test cases with different app keys
我有一個包含100個UTC的單元測試用例項目。 單元測試項目具有一個app.config文件。 app.config文件中有一個XYZFeatureOn
標志,當標志為true時,有100個測試用例運行綠色,而當標志為false時,其余50個測試用例運行綠色。 在每個測試案例中,通過將配置文件中的鍵替換為以下內容來打開/關閉該功能:
var xmlDoc = new XmlDocument();
xmlDoc.Load(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
xmlDoc.SelectSingleNode("//XYZFeatureON").Attributes["Enabled"].Value = true/false;
xmlDoc.Save(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
ConfigurationManager.RefreshSection("XYZFeatureON");
現在,當我在TFS中運行測試套件時,其中一半會失敗,因為標志初始化為true或false,但是當單獨運行測試時,測試用例會運行綠色。
通過運行以上代碼,它實際上並不會在運行時更改設置。
在這種情況下我該怎么辦? 找不到每種用例的情況下是否都可以有兩個不同的app.config文件。
任何幫助表示贊賞。
您現在擁有的是對外部事物的依賴,這與單元測試方法背道而馳。
您有兩種選擇:
這樣,由於您不需要更新配置文件,因此測試將可靠並且運行速度更快。
最后,進行一些集成測試,以確保正確傳遞配置值並每天調用它。
您提到在代碼深處讀取配置值。
在這種情況下,一種選擇是讀取它並立即將其存儲在應用程序緩存中。
從那時起,您可以在需要時從緩存中讀取它。
您甚至可以創建一個抽象,即IApplicationSettings
接口,該接口處理讀取和設置應用程序緩存中的內容,並將其傳遞給代碼中需要它的任何部分,因此您可以調用Get方法並使用該值,如果需要的話這樣,您就可以在測試中模擬該值並返回測試所需的任何內容。
關鍵是,如果您想進行有意義且可維護的簡單測試,則需要進行一些更改。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.