2

在我的 MsTests 中,我必须在我的项目中访问并使用一个文件。所以我使用 Path.GetFullPath(@"......\name_of_file")

但是在运行构建时,我得到一个找不到文件的错误,因为路径的上下文是临时目录 (C:\TeamCity\buildAgent\temp\buildTmp) 而不是我所有文件所在的结帐目录 (C:\TeamCity\构建代理\工作\e87255825b2f3eb1)

有配置可以改变吗?或者更好的方法来做到这一点?

4

2 回答 2

2

我找不到一个 TeamCity 选项来指定应该运行单元测试的目录。其他人也许可以在那里提供帮助。

但是,我通常将单元测试所需的文件作为嵌入式资源包含在内,以便在执行期间您可以确定该文件始终可以访问,无论它从何处运行。您可以轻松地Stream从嵌入式资源中获取 a,如果您需要使用仅采用文件名的 API,您可以将文件写入Path.GetTempPath().

于 2012-11-17T04:45:14.277 回答
0

我修改了我的测试以引用如下文件:

string currentDir = new System.Diagnostics.StackFrame(true).GetFileName();
var workingFile = new FileInfo(currentDir);
string fileContents = File.ReadAllText(workingFile.Directory + @"\ResourceFolder\MyFile.xml");

我知道这不是一个好方法,但这适用于我在本地和从 TeamCity 调用时。

于 2012-11-19T17:28:04.623 回答