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

Visual studio Visual Studio测试项目-部署时不复制文件夹,visual-studio,visual-studio-2008,unit-testing,mstest,Visual Studio,Visual Studio 2008,Unit Testing,Mstest,问题是: 1.在Visual Studio解决方案中创建测试项目。 2.打开.testrunconfig文件,在“部署”菜单项下,选中“启用部署”复选框。 3.现在单击“添加目录…”按钮并添加一个包含一些文件的文件夹。 4.运行测试项目(使用虚拟测试) 好的,现在检查TestResults文件夹:您将看到所有文件都被直接复制(到顶层)-文件夹本身没有被复制(在它们下面有文件)。这会在测试期间弄乱我的路径。有人能告诉我如何复制文件夹而不是下面的文件吗 谢谢。在使用它的测试类上使用[Deployme

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

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


谢谢。

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

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

}
注:

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

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

测试文件夹/

TestFolder/TestDeployment/


然后在testrunconfig中仍然选择TestFolder文件夹,TestDeployment文件夹将部署到out目录

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

<DeploymentItem filename="FolderName\" />

将此更改为

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


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

Hmm。这需要在测试夹具类中而不是在.testrunconfig文件中进行硬编码。我决定取消选中“启用部署”,并在bin\Debug文件夹中执行所有操作,其中所有数据文件都设置为“始终复制”。他做这项工作。谢谢你提供的信息!关闭“部署”很简单。但是您应该考虑从旧版本中在bin调试中存在的风险。您的测试只能在您的计算机上运行/失败。因此,在运行测试之前,请不时清理bin\debug。运行代码和测试时也会出现脏文件的问题!这正是我需要的,谢谢。我需要重新启动VisualStudio才能使其生效。我有filename=“FolderName\SubfolderName\”需要转换为filename=“SubfolderName\”outputDirectory=“SubfolderName\”才能正常工作谢谢你的帮助。在VS2013中也需要同样的技巧。我想知道为什么需要使用文本编辑器来指定outputDirectory!Microsoft应修复“编辑测试设置”对话框。我不喜欢接受的答案,这一个更干净。我只是按照你说的做了,在测试设置中取消选中“启用部署”,让它停止创建新目录,并使用现有的bin\Debug目录。好多了,车也少了!