在Team Foundation Server (TFS)构建中运行单元测试

24

当给定构建运行时,如何让Team Foundation Server运行单元测试?

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

在构建过程中出现单元测试问题的常见故障排除步骤是什么?

3个回答

11

这要取决于你使用的TFS版本,所以我会假设你正在使用2008版。

首先,必须在作为构建代理的计算机上安装适用于测试人员的Team Edition,如“创建构建定义”的说明中所述。

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

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

需要注意的事项:

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

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

更多信息请参见我之前的问题 此处


2
注意,在VS 2010中,文件扩展名现在是“.testsettings”,但除此之外,它与以前的版本一样可用。 - Jason Williams

4
如果您不想使用测试配置(难以管理),只需将所有测试运行在.dll中,方法是将以下内容添加到构建配置中:
<ItemGroup>
    <TestContainerInOutput Include="MyProject.UnitTests.dll" />
</ItemGroup>

整个过程非常顺畅简单。您可以通过本地打开测试结果文件(有点麻烦)来检查在构建服务器上失败的单元测试,但通常您只需在本地运行单元测试即可立即看到结果。
如果您习惯使用 NUnit,则可以选择按类名对测试进行排序,它会提供类似的视图。
注意代码覆盖率,它会在编译时完全复制您的二进制文件。如果您的二进制文件足够大并且经常编译,它将快速耗尽驱动器空间。

但是通配符方法确实允许您从不同的测试项目运行所有测试。想象一下当您有100个不同的测试项目时,<TestContainerInOutput列表会是什么样子。 - Ola

1

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