0

使用 MSTest 时,如何将测试数据文件夹部署到 TestResults 目录?

在我的 UnitTests 项目中,我有一个 TestData 文件夹,其中包含一些 xml 文件作为测试数据。

我更新了 ci.testrunco​​nfig 以便在测试运行时部署 TestData 文件夹:

<Deployment>
    <DeploymentItem filename="TestData" outputDirectory="CustomFolder/TestData" />    
  </Deployment>

但它不会部署文件夹。

如何解决?

例如,我可以通过将特定文件的“复制到输出目录”设置为“始终复制”来部署文件,但我想避免这种方法,因为我无法控制文件/文件夹的部署位置.

4

2 回答 2

0

您需要使用 DeploymentItem 标签。您可以在课堂上或特定的单元测试中进行。在您的测试项目中添加您需要部署的目录和文件(例如 MyFiles)。

在您的测试类 ass DeploymentItem 中,并为其提供您的目录名称。

[TestClass]
[DeploymentItem("MyFiles")]
public class MyClassTest
{
    [TestMethod]
    public SomeMethodTest()
    {
        // Your unit test.
    }

    [TestMethod]
    [DeploymentItem("MyFiles")]
    public AnotherMethodTest()
    {
        // Your unit test.
    }
}
于 2013-04-04T08:37:06.853 回答
0

已编辑我错过了您使用 VS2005-VS2008 的情况,因为您.testrunconfig在 VS2010 及更高版本中使用的是.testsettings.

无论如何,我刚刚在非常相似的问题上苦苦挣扎。这就是我发现的。您可以通过以下方式之一将文件夹部署到 TestResults 目录:

  1. .testrunconfig在或 中设置启用部署复选框 .testsettings。选择您需要部署的文件夹。事情是不会部署文件夹,但会部署文件夹内容(如果文件夹为空,则不会部署任何内容)到 TestResults 目录。就在 TestResults 目录的根目录中。如果您需要部署文件夹和文件夹内容,则有选项 2

  2. .testrunconfig同样,在或 中设置启用部署复选框 .testsettings。使用[DeploymentItem(pathOrigin, pathDest)]属性。PathOrigin可以是绝对路径或相对路径。相对路径是相对于在or文件RelativePathRoot中找到的设置。默认情况下是您的解决方案文件夹,因此用于将目录部署到 TestResults。如果 MSTest 找不到目录(或文件),它会尝试在您的 TestProject 的文件夹中找到它。.testrunconfig.testsettingRelativePathRootProjectname/DirectoryNamebin

此外,在所有测试设置实验之后,您需要手动刷新TestView窗口

于 2013-04-04T11:12:47.973 回答