我正在使用
MS unit testing framework
来测试我的 C# 库。我必须使用 DeploymentItem attribute
打开一个正在部署的文件。但它没有将文件部署到测试部署目录。
在我的单元测试项目中,我创建了一个文件夹
TestFile
,该文件夹中有多个文件,比如说a.txt,b.txt。
现在在我的单元测试类中添加了 DeploymentItem 属性。但文件没有被复制。
这是我的代码。
[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
}
}
我做错了什么?
我在这个线程中找到了两种可能的解决方案:
希望这有帮助。
为了将来的参考,根据我在使用 VS 2015 时注意到的情况 - 您在部署项属性中指定的路径必须相对于构建输出(调试文件夹)。如果您的文件夹结构是“UnitTesting\TestData\Test.xml”,则 DeploymentItem 必须是 DeploymentItem("..\..\TestData\Test.xml") 在这种情况下,TestData 文件夹不需要包含在 UnitTesting 项目中。
我进行了一组测试,其中副本适用于某些测试,但不是最新的,即使 DeploymentItem 属性的设置方式完全相同。 在用尽其他一切之后,我对解决方案做了“干净的解决方案”并重新运行,它开始正确复制。 YMMV
就我而言,问题是“”而不是“/”。 更多解释这里