2013-01-17 45 views
0

這裏是我的單元測試代碼:TFS構建機器測試方法錯誤了構建機器上

[TestMethod] 
public void GetMyAttachmentTest() 
{ 
    var files = Directory.GetFiles(
     Directory.GetCurrentDirectory() + "/Common/MyFiles/", "*.*"); 

    .... do some thing with the files... 
} 

在TFS生成機,當我運行我的單元測試,我收到以下錯誤:

 
System.IO.DirectoryNotFoundException: Could not find a part of the path 
'C:\Builds\4\30 my folder v1.0\myfolder1\TestResults\SCMTFSService_MyBuildServer 2013-01-16 18_06_52_Any CPU_Release\Out\Common\MySpecialFiles\'. 

當我看着在TFS Drop文件夾,我看到我的文件被部署到以下文件夾:

 
\\MyBuildServer\Builds\MyFolder\MySolution_20130116.5\Common\MySpecialFiles 

在我的單元測試代碼,我得到我的文件內容如下:

var files = Directory.GetFiles(
    Directory.GetCurrentDirectory() + "/Common/MySpecialFiles/", "*.*"); 

有沒有一種方式,當我的單元測試的運行TFS建機,它可以考慮在部署Common\MySpecialFiles的文件嗎?

+0

你可以發佈你的單元測試代碼(包括屬性)嗎? –

回答

1

這個問題有點含糊。在過去,我遇到了在臨時位置執行單元測試的問題。動態路徑可能會造成問題,如GetCurrentDirectory()。當臨時目錄更改/清除時,文件可能會「丟失」。

不使用動態路徑,而是使用適當的權限設置網絡共享。我建議將這個網絡共享的路徑存儲到一個配置文件或數據庫中,以便在沒有代碼推送的情況下更新它。

0

爲什麼不把文件的位置放在app.config/web.config文件的appSettings項中?無論是本地,構建服務器還是部署環境,都可以輕鬆將其更改爲與您的環境相匹配。

否則,您必須將當前目錄設置爲\ MyBuildServer \構建\ MyFolder文件\ MySolution_20130116.5運行測試,並且可能會在其他方面影響您的測試之前。

相關問題