3

我有一个单元测试,它查看我的测试项目中包含的文本文件。我不得不采取这条路线,因为我似乎无法正确复制用户正在进入原始数据本身(其他系统)的 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");

    }

我错过了什么?

4

2 回答 2

0

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

于 2012-08-19T09:06:29.367 回答
0

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

只需签入您的文件

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

于 2012-08-17T15:27:19.293 回答