【问题标题】:Relative path inside tests with TeamCityTeamCity 测试中的相对路径
【发布时间】:2012-11-17 04:34:22
【问题描述】:

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

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

有配置可以改变吗?还是有更好的方法?

【问题讨论】:

    标签: teamcity mstest


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-04-20
        • 2018-03-31
        • 1970-01-01
        • 2020-04-28
        • 2011-06-15
        • 2011-02-05
        • 1970-01-01
        相关资源
        最近更新 更多