0

这是我的单元测试代码:

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

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

在 TFS 构建机器上,当我运行单元测试时,我收到以下错误:

System.IO.DirectoryNotFoundException:找不到路径的一部分
'C:\Builds\4\30 我的文件夹 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

4

2 回答 2

1

问题有点模糊。过去,我在临时位置执行单元测试时遇到过问题。这对于动态路径(例如GetCurrentDirectory(). 当临时目录更改/清除时,文件可能会“丢失”。

不要使用动态路径,而是设置具有适当权限的网络共享。我建议将此网络共享的路径存储为配置文件或数据库,以便无需代码推送即可对其进行更新。

于 2013-01-17T20:08:26.930 回答
0

为什么不将文件的位置放在 app.config/web.config 文件的 appSettings 项中?这将使更改它以匹配您的环境变得容易,无论它是本地的、构建服务器还是部署的环境。

否则,您必须 在运行测试之前将当前目录设置为\MyBuildServer\Builds\MyFolder\MySolution_20130116.5 ,这可能会以其他方式影响您的测试。

于 2013-01-17T20:06:35.233 回答