2012-11-17 40 views
2

在我的MsTests内我必须达到并在我的项目中使用一个文件。所以我用Path.GetFullPath(@“...... \ name_of_file”)TeamCity测试中的相对路径

但运行的版本,我得到错误未找到文件时因为路径的情况下是临时目录(C:\ (C:\ TeamCity \ buildAgent \ work \ e87255825b2f3eb1)

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

回答

2

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

但是,我通常会将单元测试所需的文件作为嵌入式资源包含在内,以便在执行过程中确保文件始终可以访问,无论文件从何处运行。您可以很容易地从嵌入式资源获取Stream,并且如果您需要使用只接收文件名的API,则可以将该文件写入Path.GetTempPath()

0

我修改了我的测试是指这样的文件:

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

我知道这是不是做一个很好的方式,但是这在当地为我工作,并从TeamCity的调用时。