【问题标题】:TFS: how to reference the output directory in C#TFS:如何在 C# 中引用输出目录
【发布时间】:2011-06-21 06:33:36
【问题描述】:

使用 VS2010 我有一个测试,它调用一个方法,该方法运行一个输出文件的命令行命令。

文件输出到: ...\TestResults\xxxxxx 2011-02-04 09_45_46\Out

我想测试一下文件是否写入成功

有什么方法可以在不进行硬编码的情况下引用此路径吗?

【问题讨论】:

    标签: c# .net unit-testing tfs


    【解决方案1】:

    我昨天必须这样做:

    string outputDir = new DirectoryInfo(Assembly.GetExecutingAssembly().Location).Parent.FullName
    

    【讨论】:

      【解决方案2】:

      对不起,我现在知道了。

      您可以只使用单元测试类附带的 TestContext 属性。 您有 ResultDirectory、TestDir、TestDeploymentDir 等属性...

      如果您的 TestClass 中没有它,只需添加一个名为 TestContext 的公共 TestContext 属性。

      最好只创建一个新的单元测试类,看看它是如何使用的。

      【讨论】:

        【解决方案3】:

        您指的是路径中的xxxxxx 2011-02-04 09_45_46 部分吗?您可以浏览...\TestResults\ 路径中的文件夹,获取最后一个文件夹(希望是您想要的文件夹),然后使用 Path.Combine 创建您的完整路径。然后,您需要做的就是检查文件是否存在。

        【讨论】:

          【解决方案4】:

          您可以在项目的构建事件中指定特殊变量。

          这是一个参考:Macros for Build Commands and Properties

          我认为 OutDir 或 TargetDir 是您可能正在寻找的。​​p>

          【讨论】:

          • 希望用 C# 来实现。我可以在 C# 中使用这些变量吗?
          【解决方案5】:

          恕我直言,另一个更强大的选项是提供命令行实用程序的输出路径,您可以将其指定为已知位置(即 Path.GetTempPath 或 Path.GetRandomFileName)。这样您就不会嵌入脆弱的测试运行器依赖项。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2016-02-12
            • 2015-05-13
            • 1970-01-01
            • 1970-01-01
            • 2019-05-02
            • 1970-01-01
            • 1970-01-01
            • 2020-01-29
            相关资源
            最近更新 更多