【问题标题】:Test environment does not copy my files测试环境不复制我的文件
【发布时间】:2013-06-13 01:55:57
【问题描述】:

我使用 VS2010。在我的测试项目中,我有一个名为“MessageInstances”的文件夹,该文件夹中有一个子文件夹“GET_ACTIVITY”,该文件夹内有 xml 文件。

当我运行测试时,应该将这些文件相应地复制到 out 程序集目录,即如果 Out 是我的测试项目输出被复制到的文件夹,那么 Out\MessageInstances\GET_ACTIVITY\ 文件夹应该填充我的 xml 文件。

我尝试使用 *.testsettings 文件进行不同的设置,尝试从 Resharper 单元测试运行器和 VS' 运行测试,但都没有将文件复制到正确的文件夹中。我也玩了DeploymentItem 属性,但仍然没有成功。

我还能尝试什么?

【问题讨论】:

    标签: visual-studio-2010 unit-testing


    【解决方案1】:

    仅当项目上的 Build Action 设置为 Content 并且 复制到输出目录 设置为

    DeploymentItem 属性才有效strong>如果较新则复制或始终复制。此外,如果您的测试使用 testsettings 文件运行,您需要在设置中启用部署。确保您正在编辑活动的测试运行配置,以防万一。

    您的 DeploymentItem 应定义如下:

    [DeploymentItem("MessageInstances\\GET_ACTIVITY\\", "MessageInstances\\GET_ACTIVITY")]
    

    或者使用 '@' 代替 '\\'

    [DeploymentItem(@"MessageInstances\GET_ACTIVITY\", @"MessageInstances\GET_ACTIVITY")]
    

    即您需要指定输出目录,否则文件将被复制到您的测试运行的 Out 目录中。

    【讨论】:

    • 原来每次新增要部署的文件夹,都要重启VS。无论如何,谢谢。
    【解决方案2】:

    如果您在解决方案资源管理器中调出文件的属性,请验证文件是否设置为 Build Action: ContentCopy to output director: Always

    【讨论】:

      【解决方案3】:

      我的一些同事在使用 ReSharper MS 测试运行程序时遇到了类似的问题。 该错误是 ReSharper 7.1 特有的,已在当前 7.1.1 中修复。

      http://youtrack.jetbrains.com/issue/RSRP-335233#tab=Comment

      【讨论】:

        【解决方案4】:

        根据MSDN,如果有帮助,您也可以试试这个,

        在运行配置中选择要部署的文件或文件夹

        在解决方案资源管理器中的解决方案项下,双击要编辑的运行配置文件。

        会出现一个名称为 .testrunco​​nfig 的对话框。 点击部署。

        在要部署的附加文件或目录下,指定要复制的附加文件或文件夹。

        为此,请单击添加文件以选择文件;这将打开“添加部署文件”对话框。

        您还可以单击“添加目录”以使用“添加部署目录”对话框选择文件夹。

        在 .testrunco​​nfig 对话框中,单击“保存”,然后单击“确定”。

        只要此运行配置文件处于活动状态,这些部署项就会被复制到部署文件夹中。

        希望这会有所帮助。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-08-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-07-21
          相关资源
          最近更新 更多