【问题标题】:Unit Test Assets in TFS 2010 BuildTFS 2010 Build 中的单元测试资产
【发布时间】:2012-08-17 15:15:45
【问题描述】:

我有一个单元测试,它查看包含在我的测试项目中的文本文件。我不得不采取这条路线,因为我似乎无法正确复制 C# 字符串中的特殊字符,用户正在进入原始数据本身(其他系统)。

单元测试在排列部分读取文件的内容,然后对内容进行操作以确保事情按计划进行。

在本地,测试运行良好——零问题。

我们运行 TFS2010 构建,但我的构建每次都未能通过该测试,因为在构建服务器上运行测试时找不到文本文件本身。

我的文件目前位于测试项目本身名为“Assets”的目录中,文本文件的属性是:

  • 构建操作:内容
  • 复制到输出目录:始终复制

测试代码是

    [TestMethod]
    public void Broken_First_Token_Ok_Second_Returns_Full_String()
    {
        string rawText = string.Empty;

        // load the broken translation
        using (StreamReader reader = new StreamReader(@"Assets\BrokenTranslation.txt")){
            rawText = reader.ReadToEnd();
        }

        string expected = rawText;

        string actual = [Some code that should return the proper values]

        Assert.AreEqual(expected, actual, "Failed to return proper match");

    }

我错过了什么?

【问题讨论】:

  • 您是否尝试过通过 DeploymentItem 属性使文本文件可用于您的测试?这篇博文描述了如何以及为什么要使用它:luisfsgoncalves.wordpress.com/2011/05/31/…
  • @IanGilroy,您想将其添加为答案吗?很棒的链接,正是我想要的。

标签: unit-testing tfsbuild


【解决方案1】:

您可以通过 DeploymentItem 属性可靠地使文本文件可用于您的测试。这篇博文描述了如何以及为什么要使用它:http://luisfsgoncalves.wordpress.com/2011/05/31/unit-tests-with-dependencies-on-team-foundation-server/

【讨论】:

    【解决方案2】:

    1 您必须在构建服务器中部署文件,必须将文件添加到源代码控制中。

    只需签入您的文件

    2 你必须确保你引用的路径是正确的:@"Assets\BrokenTranslation.txt

    【讨论】:

    • 该文件在源代码管理中,并且是项目的一部分。
    猜你喜欢
    • 2012-07-16
    • 1970-01-01
    • 2011-07-08
    • 2013-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-03
    相关资源
    最近更新 更多