【问题标题】:DeploymentItem not deploying filesDeploymentItem 未部署文件
【发布时间】:2013-05-28 08:10:21
【问题描述】:

我正在使用 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
    }
}

我做错了什么?

【问题讨论】:

    标签: c# unit-testing visual-studio-2012 vs-unit-testing-framework deploymentitem


    【解决方案1】:

    我在this thread找到了两种可能的解决方案:

    1. 将部署文件的“复制到输出文件夹”属性设置为“始终复制”(请参阅​​Problems with DeploymentItem attribute
    2. 检查 Local.testsettings 文件中的“启用部署”设置(请参阅Problems with DeploymentItem attribute

    希望这会有所帮助。

    【讨论】:

    • 感谢您的帮助。我设置了“始终复制”。我已经使用测试设置完成了部署,这次我正在考虑使用 DeplyomentAttribute。
    【解决方案2】:

    对于将来的参考,从我使用 VS 2015 注意到的内容来看 - 您在部署项属性中指定的路径必须相对于构建输出(调试文件夹)。如果您的文件夹结构是“UnitTesting\TestData\Test.xml”,则 DeploymentItem 必须是 DeploymentItem("..\..\TestData\Test.xml") 在这种情况下,TestData 文件夹不需要包含在 UnitTesting 项目中。

    【讨论】:

    • 这个帖子适合我,我的是VS2015企业版,不加“..\..\”,运行测试,总是找不到文件
    • 我包含了我的项目名称(上面示例中的“UnitTesting”),这正在扼杀它。我一拿出来,它就起作用了。请注意,无论 ..\ 或 ..\..\ 是否存在,它都可以正常工作,这让我认为我们已经在根目录中,并且任何数量的 ..\ 都不会做任何事情。
    【解决方案3】:

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

    【讨论】:

    • 这已经为我完成了这项工作,谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-21
    • 1970-01-01
    • 1970-01-01
    • 2020-04-27
    • 2012-08-01
    相关资源
    最近更新 更多