【问题标题】:Running unit tests on Team Foundation Server (TFS) builds在 Team Foundation Server (TFS) 构建上运行单元测试
【发布时间】:2010-09-22 04:24:50
【问题描述】:

在运行给定构建时,让 Team Foundation Server 运行单元测试的步骤是什么?

在首次设置 TFS 服务器以执行此操作时,开发人员或系统管理员应注意哪些警告/陷阱/解决方法?

构建期间单元测试问题的常见故障排除步骤是什么?

【问题讨论】:

    标签: unit-testing tfs installation mstest


    【解决方案1】:

    这取决于您运行的 TFS 版本,所以我假设它是 2008。

    首先,您必须在将充当构建代理的计算机上安装 Team Edition for Testers,如 How To: Create a Build Definition 中所述

    有几种方法可以告诉 Team Build 为您的构建运行测试。

    1. 可以从正在构建的解决方案中定义的测试列表运行单元测试。此列表由构建定义引用,并执行所选列表中的所有测试。更多信息here
    2. 还可以通过定义通配符掩码(即 Test*.dll)来执行通配符测试,该掩码指示 Team Build 运行程序集中与掩码匹配的任何测试。这也是在定义构建定义时完成的。

    注意事项:

    如果您打算使用通配符方法并希望为您的测试配置启用代码覆盖,则必须将以下内容添加到您的构建定义文件中以启用它。

    <RunConfigFile>$(SolutionRoot)\TestRunConfig.testrunconfig</RunConfigFile>
    

    有关更多信息,请参阅我之前的问题here

    【讨论】:

    • 请注意,在 VS 2010 中,文件扩展名现在是“.testsettings”,但除此之外它可以像以前一样工作。
    【解决方案2】:

    如果您不想使用测试配置(管理起来很麻烦),只需将其添加到构建配置中即可在 .dll 中运行所有测试:

    <ItemGroup>
        <TestContainerInOutput Include="MyProject.UnitTests.dll" />
    </ItemGroup>
    

    整个过程顺利且相当简单。您可以通过在本地打开测试结果文件来检查构建服务器上的单元测试(有点痛苦),但通常您只需在本地运行单元测试,您就可以立即看到结果。

    如果您习惯于 NUnit,您可以选择按类名对测试进行排序,它提供了类似的视图。

    注意代码覆盖率,它会在编译时生成二进制文件的完整副本。如果您的二进制文件足够大并且您经常编译,它将很快占用驱动器空间。

    【讨论】:

    • 但是通配符方法确实允许您运行来自不同测试项目的所有测试。想象一下当您有 100 个不同的测试项目时的
    【解决方案3】:

    http://msdn.microsoft.com/en-us/library/cc981972(v=vs.90).aspx

    我喜欢这个定义,因为它为您提供了完整的“演练” 创建项目 创建单元测试项目 配置团队构建以使用它单元测试

    【讨论】:

      猜你喜欢
      • 2014-06-15
      • 1970-01-01
      • 2012-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多