2012-08-17 97 views
3

我有一個單元測試,查看包含在我的測試項目中的文本文件。我不得不採取這條路線,因爲我似乎無法正確複製C#字符串中的特殊字符,用戶正在進入原始數據本身(某些其他系統)。TFS 2010中的單元測試資產Build

單元測試在排列部分中讀取文件的內容,然後對內容執行操作以確保事情按計劃進行。

本地,測試運行正常 - 零問題。

我們運行TFS2010 Build,並且每次測試都會失敗,因爲在構建服務器上運行測試時未找到文本文件本身。

我的文件是目前在測試項目本身所謂的「資產」,文本文件的屬性是一個目錄:

  • 生成操作:內容
  • 複製到輸出目錄:複製始終

測試代碼是

[TestMethod] 
    public void Broken_First_Token_Ok_Second_Returns_Full_String() 
    { 
     string rawText = string.Empty; 

     // load the broken translation 
     using (StreamReader reader = new StreamReader(@"Assets\BrokenTranslation.txt")){ 
      rawText = reader.ReadToEnd(); 
     } 

     string expected = rawText; 

     string actual = [Some code that should return the proper values] 

     Assert.AreEqual(expected, actual, "Failed to return proper match"); 

    } 

有什麼我錯過了?

+2

你有沒有試過通過DeploymentItem屬性使你的測試可用的文本文件?本博客文章描述瞭如何以及爲什麼要使用它:http://luisfsgoncalves.wordpress .com/2011/05/31/unit-tests-with-dependencies-on-team-foundation-server/ – 2012-08-17 15:30:56

+0

@IanGilroy,你想添加一個答案?輝煌的鏈接,完全是我在找的。 – reallyJim 2012-08-17 16:18:08

回答

0

1您必須將您的文件部署到構建服務器,您必須將您的文件添加到源代碼管理。

只是檢查您的文件

2你必須確保你所引用的路徑是正確的:@「資產\ BrokenTranslation.txt

+0

該文件位於源代碼管理中,是該項目的一部分。 – reallyJim 2012-08-17 15:28:43