在我的MsTests中,我必须在我的项目中访问并使用一个文件。所以我使用Path.GetFullPath(@“...... \ name_of_file”)
但是当运行构建时,我得到一个找不到文件的错误,因为路径的上下文是临时目录(C:\ TeamCity \ buildAgent \ temp \ buildTmp)而不是我的所有文件所在的checkout目录(C: \ TeamCity的\ buildAgent \工作\ e87255825b2f3eb1)
是否有更改配置?或者更好的方法呢?
答案 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调用时,这对我有用。