【问题标题】:Visual Studio Test Project - Does not copy folder on deploymentVisual Studio 测试项目 - 不会在部署时复制文件夹
【发布时间】:2010-10-18 08:46:40
【问题描述】:

问题来了:
1. 在您的 Visual Studio 解决方案中创建一个 TestProject。
2. 打开 .testrunco​​nfig 文件并在“部署”菜单项下,选中“启用部署”复选框。
3. 现在单击“添加目录...”按钮并添加一个文件夹,其中包含一些文件。
4. 运行测试项目(使用虚拟测试)。

好的,现在去检查 TestResults 文件夹:您会看到所有文件都被直接复制(到顶层)- 文件夹本身没有被复制(它们下面的文件)。这在测试过程中弄乱了我的路径。谁能告诉我如何复制文件夹而不是下面的文件?

谢谢。

【问题讨论】:

  • 我就像你说的那样,在测试设置中取消选中“启用部署”,让它停止创建新目录并改用现有的 bin\Debug 目录。更好,更少的错误!

标签: visual-studio visual-studio-2008 unit-testing mstest


【解决方案1】:

在使用它的测试类上使用[DeploymentItem] 属性。你可以指定一个目录:

[TestClass]
[DeploymentItem("blahblah\\myDirectory", "myDirectory")]
public class MyTest
{

}

注意:

  • DeploymentItem 在开始测试时非常慢。它似乎每秒复制 2 个文件。
  • 您可以在测试基类上指定属性。但如果您有多个测试项目,它并不总是有效。
  • 您可能可以在具有标记为[AssemblyInitialize] 的方法的TestClass 上指定它。那么您只需提供一次。不确定,您必须尝试。
  • 源目录与解决方案位置相关。这几乎没有记录。

【讨论】:

  • 嗯。这需要在测试夹具类而不是 .testrunco​​nfig 文件中进行硬编码。我决定取消选中“启用部署”,并在 bin\Debug 文件夹中执行所有操作,其中所有数据文件都设置为“始终复制”。做这项工作。不过感谢您的信息!
  • 关闭“部署”很简单。但是您应该考虑在旧版本的 bin\debug 中存在文件的风险。您的测试只能在您的机器上运行/失败。所以在运行测试之前清理 bin\debug。
  • 运行代码和测试时可能会出现与脏文件相同的问题!
【解决方案2】:

在记事本中打开 .testsettings 文件。现在,您应该会看到每个要复制的文件夹

<DeploymentItem filename="FolderName\" />

改成

<DeploymentItem filename="FolderName\" outputDirectory="FolderName\" /> 

【讨论】:

  • 这正是我需要的,谢谢。我需要重新启动 Visual Studio 才能使其生效。
  • 上述答案的变化。我有 filename="FolderName\SubfolderName\" 需要转换为 filename="SubfolderName\" outputDirectory="SubfolderName\" 才能正常工作
  • 谢谢它的帮助。在 VS2013 中也需要相同的 hack。我想知道为什么你需要使用文本编辑器来指定 outputDirectory !微软应该修复编辑测试设置对话框。不喜欢接受的答案,这个更干净。
【解决方案3】:

您的另一个选择是在原始文件夹下创建另一个文件夹,然后该文件夹将部署到 out 目录。例如你可以有这样的结构:

测试文件夹/

TestFolder/TestDeployment/

然后在testrunco​​nfig中你还是选择TestFolder文件夹,TestDeployment文件夹就会部署到out目录下。

【讨论】:

    【解决方案4】:

    我今天也遇到了这个问题。我通过在包含所需文件夹的项目中添加一个名为“deployment_files”的文件夹来解决它。然后我将所需的文件夹放入“deployment_files”文件夹中。然后,我在解决方案资源管理器的“解决方案项目”文件夹下打开了 LocalTestRun.testrunco​​nfig 文件。转到 testrunco​​nfig 属性窗口中的“部署”面板。将“deployment_files”目录添加到部署中,瞧。其中的文件夹已复制到测试结果 Out 文件夹。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-10
      • 1970-01-01
      相关资源
      最近更新 更多