使用MSTest时,如何将测试数据文件夹部署到TestResults目录?
在我的UnitTests项目中,我有一个TestData文件夹,其中包含一些xml文件作为测试数据。
我已经更新了ci.testrunconfig,以便在测试运行时部署TestData文件夹:
<Deployment>
<DeploymentItem filename="TestData" outputDirectory="CustomFolder/TestData" />
</Deployment>
但它没有部署文件夹。
如何解决?
我可以通过将“复制到输出目录”设置为“始终复制”来为特定文件部署文件,但是我想避免这种方法,因为我无法控制文件/文件夹的位置将部署。
答案 0 :(得分:0)
您需要使用DeploymentItem标记。你可以在课堂上或特定的单元测试中完成。在Test项目中添加需要部署的目录和文件(例如MyFiles)。
在您的测试类中调用DeploymentItem并为其指定目录名称。
[TestClass]
[DeploymentItem("MyFiles")]
public class MyClassTest
{
[TestMethod]
public SomeMethodTest()
{
// Your unit test.
}
[TestMethod]
[DeploymentItem("MyFiles")]
public AnotherMethodTest()
{
// Your unit test.
}
}
答案 1 :(得分:0)
已编辑我错过了您使用VS2005-VS2008,因为您在VS2010及更高版本.testrunconfig
中使用.testsettings
。
无论如何,我刚刚遇到了类似的问题。这就是我发现的。您可以通过以下方式之一将文件夹部署到TestResults目录:
在.testrunconfig
或.testsettings
中设置启用部署复选框。选择需要部署的文件夹。将不会部署文件夹,但将部署文件夹内容(如果文件夹为空,则不会部署任何内容)到TestResults目录。就在TestResults目录的根目录下。如果您需要部署文件夹和文件夹内容,则有选项No 2
再次,在.testrunconfig
或.testsettings
中设置启用部署复选框。使用[DeploymentItem(pathOrigin, pathDest)]
属性。 PathOrigin
可以是绝对路径或相对路径。相对路径相对于RelativePathRoot
或.testrunconfig
文件中的.testsetting
设置。默认情况下,RelativePathRoot
是您的解决方案文件夹,因此请使用Projectname/DirectoryName
将目录部署到TestResults。如果MSTest找不到目录(或文件),它会尝试在TestProject的bin
文件夹中找到它。
在使用testsettings进行所有实验后,您还需要手动刷新TestView
窗口