当使用MSTest时,如何将测试数据文件夹部署到TestResults目录
本文关键字:文件夹 测试数据 部署 目录 TestResults MSTest | 更新日期: 2023-09-27 18:07:24
当使用MSTest时,如何将测试数据文件夹部署到TestResults目录?
在我的UnitTests项目中,我有一个TestData文件夹,其中包含一些xml文件作为测试数据。
我已经更新了ci。testunconfig,以便在测试运行时部署TestData文件夹:
<Deployment>
<DeploymentItem filename="TestData" outputDirectory="CustomFolder/TestData" />
</Deployment>
但是它不部署文件夹。
如何修复?
我可以通过将"Copy to Output Directory"设置为"Copy Always"来部署文件,但我想避免这种方法,因为我无法控制文件/文件夹的部署位置。
您需要使用deploymenttem标记。您可以在类或特定的单元测试中这样做。在您的Test项目中添加您需要部署的目录和文件(例如MyFiles)。
在您的测试类类DeploymentItem中,并给它您的目录名。
[TestClass]
[DeploymentItem("MyFiles")]
public class MyClassTest
{
[TestMethod]
public SomeMethodTest()
{
// Your unit test.
}
[TestMethod]
[DeploymentItem("MyFiles")]
public AnotherMethodTest()
{
// Your unit test.
}
}
EDITED我错过了您使用VS2005-VS2008的工作,因为您使用的是.testrunconfig
,而在VS2010和以后的版本中是.testsettings
。
不管怎样,我刚刚遇到了非常相似的问题。这就是我的发现。您可以通过以下方式之一将文件夹部署到TestResults目录:
-
在
.testrunconfig
或.testsettings
中设置启用部署复选框。选择需要部署的文件夹。问题是文件夹不会被部署,但文件夹内容将被部署到TestResults目录(如果文件夹为空,则不会部署任何内容)。就在TestResults目录的根目录中。如果您需要部署文件夹和文件夹内容,那么有选项2 -
同样,在
.testrunconfig
或.testsettings
中设置启用部署复选框。使用[DeploymentItem(pathOrigin, pathDest)]
属性。PathOrigin
可以是绝对路径或相对路径。相对路径是相对于.testrunconfig
或.testsetting
文件中的RelativePathRoot
设置的。默认情况下,RelativePathRoot
是您的解决方案文件夹,因此使用Projectname/DirectoryName
将目录部署到TestResults。如果MSTest找不到目录(或文件),它会尝试在TestProject的bin
文件夹中找到它。
同样,在测试设置的所有实验之后,您需要手动刷新TestView
窗口