代码之家  ›  专栏  ›  技术社区  ›  Nam G VU

DeploymentItem属性是什么意思?

  •  4
  • Nam G VU  · 技术社区  · 14 年前

    namespace ConsoleTryIt
    {
        static class Program
        {
            static void Main(string[] args)
            {
                var sum = Add(1, 2);
            }
    
            private static int Add(int p, int p2)
            {
                return p + p2;
            }
        }
    }
    

    当为该类创建单元测试类时,Visual Studio将使用 DeploymentItem . 我读过MSDN关于这个属性的内容,但仍然不明白它的含义。

    /// <summary>
    ///A test for Add
    ///</summary>
    [TestMethod()]
    [DeploymentItem("ConsoleTryIt.exe")]
    public void AddTest()
    {
        var expected = 122;
        var actual = Program_Accessor.Add(1, 121);
        Assert.AreEqual(expected, actual);
    }
    

    如果你有这个想法,请分享!

    编辑

    谢谢大家的回答。所以我们的想法是将参数中给定的项复制到测试环境的文件夹中。我的下一个问题是:为什么这个方法需要这个属性而其他方法不需要?
    我想这和测试班的私人成员有关,但我不清楚。

    请继续讨论。

    4 回复  |  直到 14 年前
        1
  •  9
  •   Pieter van Ginkel    14 年前

    指定特定测试所需的文件。测试系统创建一个新目录,从中运行测试。使用此属性,可以使测试系统将特定文件复制到该新目录。

        2
  •  1
  •   vaitrafra    14 年前

    在上面发布的示例中,测试环境确保“consoleTryIt.exe”已复制(因此存在于)测试文件夹中。

        3
  •  1
  •   Thomas Weller    14 年前

    这意味着该项被复制到“TestResults\Out”文件夹,并且基本上是测试运行的工件/必需项。因此,它与bin目录分开存储,不会被覆盖。

    哦。
    托马斯

        4
  •  0
  •   anivas    14 年前
    • 确保将测试所需的文件复制到MSTest运行其测试TestResults的文件夹中。

    • 解决方案中的文件应设置“始终复制”,以便首先将文件复制到bin文件夹,然后复制到MSTest的文件夹。