TFS 2010构建中的单元测试资源

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");

    }

我错过了什么?


2
你尝试过通过DeploymentItem属性使文本文件对你的测试可用吗?这篇博客文章描述了如何以及为什么使用它:http://luisfsgoncalves.wordpress.com/2011/05/31/unit-tests-with-dependencies-on-team-foundation-server/ - Ian Gilroy
@IanGilroy,你想把那个作为答案添加吗?太棒了,正是我在寻找的。 - reallyJim
2个回答

0

1 你必须将文件部署到你的服务器或构建环境中,并将文件添加到源代码控制之中。

只需检入你的文件即可。

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


该文件已经被纳入源代码控制,并且是项目的一部分。 - reallyJim

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接