Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# DeploymentItem未部署文件_C#_Unit Testing_Visual Studio 2012_Vs Unit Testing Framework_Deploymentitem - Fatal编程技术网

C# DeploymentItem未部署文件

C# DeploymentItem未部署文件,c#,unit-testing,visual-studio-2012,vs-unit-testing-framework,deploymentitem,C#,Unit Testing,Visual Studio 2012,Vs Unit Testing Framework,Deploymentitem,我正在使用MS单元测试框架测试我的C#库。我必须使用DeploymentItem属性打开正在部署的文件。但它并没有将文件部署到测试部署目录 在我的单元测试项目中,我创建了一个文件夹TestFile,在这个文件夹中有多个文件,比如a.txt,b.txt 现在在我的单元测试类中,我添加了DeploymentItem属性。但文件未被复制 这是我的密码 [TestClass] [DeploymentItem("TestFile")] public class CustomLibraryTest {

我正在使用
MS单元测试框架
测试我的C#库。我必须使用
DeploymentItem属性
打开正在部署的文件。但它并没有将文件部署到测试部署目录

在我的单元测试项目中,我创建了一个文件夹
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
    }
}

我做错了什么?

我在以下方面找到了两种可能的解决方案:

  • 将部署文件的“复制到输出文件夹”属性设置为“始终复制”(请参阅)
  • 检查Local.testsettings文件中的“启用部署”设置(请参阅)

  • 希望这能有所帮助。

    对于将来的参考,我在使用VS 2015时注意到-您在部署项属性中指定的路径必须与生成输出(调试文件夹)相关。如果文件夹结构为“UnitTesting\TestData\Test.xml”,则DeploymentItem必须为DeploymentItem(“..\..\TestData\Test.xml”)
    在本例中,TestData文件夹不需要包含在UnitTesting项目中。

    我有一组测试,其中副本用于某些测试,但不是最新的,即使DeploymentItem属性的设置方式完全相同。在用尽所有其他方法之后,我在解决方案上做了一个“干净的解决方案”,然后重新运行,它开始正确复制。YMMV

    谢谢您的帮助。我设置“始终复制”。我已经使用测试设置完成了部署,这次我想使用DeplymentAttribute。这篇文章对我来说很有用,我的是VS2015 enterprise,没有添加“.\..\”,运行测试,总是没有找到文件。我包括了我的项目名(“上面例子中的UnitTesting”),这就扼杀了它。我一把它拿出来,它就起作用了。请注意,无论..\或..\是否存在,它都可以正常工作,这使我认为我们已经处于根位置,任何数量的..\都不会做任何事情。