Visual Studio测试项目 - 不在部署时复制文件夹

时间:2009-04-08 16:35:48

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

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

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

感谢。

4 个答案:

答案 0 :(得分:17)

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

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

}

注意:

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

答案 1 :(得分:11)

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

<DeploymentItem filename="FolderName\" />

将此更改为

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

答案 2 :(得分:0)

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

TestFolder /

TestFolder / TestDeployment /

然后在testrunco​​nfig中,您仍然选择TestFolder文件夹,并将TestDeployment文件夹部署到out目录。

答案 3 :(得分:0)

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