簡體   English   中英

TFS構建機器測試方法錯誤在構建機器上

[英]TFS Build Machine Test method errors out on build machine

這是我的單元測試代碼:

[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中的放置文件夾時,我看到我的文件已部署到以下文件夾中:

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

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

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

當我的單元測試在TFS構建計算機上運行時,是否可以查看已部署的Common\\MySpecialFiles的文件?

這個問題有點含糊。 過去,我在臨時位置執行單元測試時遇到問題。 對於諸如GetCurrentDirectory()類的動態路徑,這可能會出現問題。 臨時目錄更改/清除時,文件可能會“丟失”。

代替使用動態路徑,而是使用適當的權限來設置網絡共享。 我建議存儲到此網絡的路徑,以共享配置文件或數據庫,以便無需代碼推送即可對其進行更新。

為什么不將文件的位置放在app.config / web.config文件的appSettings項目中? 無論是本地,構建服務器還是已部署的環境,都可以輕松地對其進行更改以匹配您的環境。

否則,您必須在運行測試之前將當前目錄設置為\\ MyBuildServer \\ Builds \\ MyFolder \\ MySolution_20130116.5 ,這可能會以其他方式影響您的測試。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM