使用TeamCity进行测试的相对路径

时间:2012-11-17 04:34:22

标签: teamcity mstest

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

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

是否有更改配置?或者更好的方法呢?

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

我修改了我的测试以引用这样的文件:

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

我知道这不是一个很好的方法,但是当我从TeamCity调用时,这对我有用。