我有许多复制特定目录的测试类和方法,如下所示:
[TestClass, DeploymentItem("LanguageData", "LanguageData")]
public class OcrTests
{
[TestMethod]
public void Can_Capture_Field()
{
// some code that expects the LanguageData directory to be in the test results Out directory
}
// etc
}
[TestClass]
public class OcrBuilderTests
{
[TestMethod, DeploymentItem("LanguageData", "LanguageData")]
public void Can_Build_Specific_Ocr_Engine_Implementation()
{
// some more code that expects the LanguageData directory to be in the test results Out directory
}
// etc
}
这些测试在一个程序集中,并且 LangaugeData 目录中的所有文件都Copy to Output Directory
设置为Copy Always
.
一切正常,Out
只要我只有一个测试程序集加载到解决方案中,或者这是我从中运行测试的唯一程序集(即仅在当前上下文/类中运行测试),该目录就会复制到测试结果目录。
一旦我添加了第二个程序集并运行解决方案中的所有测试,则该目录不再被复制,但任何其他只是单个文件的 DeploymentItems 似乎都可以正常复制。
测试本身都仍在运行,但依赖于该目录的测试会崩溃。大概是因为 MSTest 找不到该目录 - 也许它期望它位于其他测试程序集之一的构建目录中?
任何想法关于阻止复制的多个测试项目是什么,以及我可以做些什么来解决它,除了将该目录中的每个文件添加为单独的 DeploymentItem 吗?