DeploymentItem没有部署文件
本文关键字:文件 部署 DeploymentItem | 更新日期: 2023-09-27 18:15:44
我使用MS unit testing framework
来测试我的c#库。我必须打开使用DeploymentItem attribute
部署的文件。但是它没有将文件部署到Test部署目录。
在我的单元测试项目中,我创建了一个文件夹TestFile
在这个文件夹中有多个文件,比如a.txt b.txt
现在,在我的Unit-test类中,我添加了deploymenttem属性。但是文件没有被复制。
这是我的代码。
[TestClass]
[DeploymentItem("TestFile")]
public class CustomLibraryTest
{
public TestContext TestContext { get; set; }
[TestMethod]
[DeploymentItem(@"TestFiles'a.txt")] // THis should deploy a.txt to test deployment directory
{
var path = TestContext.TestDeploymentDir + "a.txt";
// Now when I debug this unit-test, and open path in explorer,
// a.txt is not present in "TestResults'Deploy_fhafeez 2013-05-28 13_02_37'Out" folder
}
}
我做错了什么?
我在这个线程中找到了两个可能的解决方案:
- 设置你的部署文件的"Copy To Output Folder"属性为"Copy Always"(参见DeploymentItem属性的问题)
- 检查本地的"启用部署"设置。测试设置文件(参见deploymenttem属性的问题)
为了将来的参考,从我注意到使用VS 2015 -你在部署项属性中指定的路径必须相对于构建输出(调试文件夹)。如果你的文件夹结构是"UnitTesting'TestData'Test.xml",那么DeploymentItem必须是DeploymentItem("..'..'TestData'Test.xml")在这种情况下,TestData文件夹不需要包含在UnitTesting项目中。
我有一组测试,其中副本可以用于某些测试,但不能用于最新的测试,即使deploymenttem属性以完全相同的方式设置。在用尽了所有方法后,我对解决方案进行了"清洁解决方案"并重新运行,它开始正确地复制。YMMV