TeamCity On-Premises 2024.03 Help

Visual Studio 测试

Visual Studio Tests 构建运行程序集成了 MSTest 框架和 VSTest 控制台运行器的功能。 对两种框架的支持使 TeamCity 能够执行测试并自动导入其测试结果。

Visual Studio 测试运行器需要在构建代理上安装 Visual Studio 测试代理或 Microsoft Visual Studio。

Visual Studio 测试运行器设置

选项

描述

测试引擎类型

选择用于运行测试的工具:VSTest 或 MSTest。

测试引擎版本

从下拉菜单中选择工具的版本。 默认情况下,TeamCity 会自动检测可用的 VSTest 和 MSTest 安装:

  • MSTest 版本 2005 - 2017 受到支持

  • 支持 VSTest 2012-2017 版本

您也可以在此处指定自定义路径到测试运行器。 TeamCity 参数得到了支持。

测试文件名

这个字段对于 VSTest 来说是必填的,而对于 MSTest 则是可选的。
请在包含的程序集列表中指定要在其中运行测试的程序集路径的新行分隔列表。 在相应的字段中指定路径,从测试运行中排除组件。 通配符是受支持的。
至程序集的路径必须相对于构建签出目录

运行配置文件

(可选)为 VSTest 指定典型的 .runsettings 文件,或为 MSTtest 指定 .testsettings 文件。 您可以使用文件浏览器 VCS-browserIcon.png

附加命令行参数

为选择的测试引擎输入额外的命令行参数。
请注意,使用 MSTest 运行的测试不会即时报告。
Microsoft Developer Network 列出了VSTestMSTest的可用选项。

其他的设置将根据运行测试的引擎而变化:

VSTest 设置

选项

描述

目标平台

选择平台的位数。 请注意,指定 x64 目标平台将强制 vstest.console 进程在隔离模式下运行。

框架

如果指定了默认值,vstest.console 将自动选择目标框架。 您也可以通过下拉菜单手动选择 .NET 平台。

测试名称

(可选)在包含的程序集中发现的所有测试中,只有名称与提供的值匹配的测试将会被执行。 对于多个值,请使用新的行。

如果该字段为空,将会运行所有的测试。 请参阅 Microsoft documentation 中的详细信息。 无法与下面的选项一起使用。

测试用例过滤器

运行与给定表达式匹配的测试。 请参阅 Microsoft documentation 中的详细信息。 无法与上述选项一同使用。

在隔离中运行

在独立的进程中运行测试

使用实时测试报告

  • 如果选中此复选框,将使用自定义的 TeamCity 测试记录器进行实时报告。 请参阅 下一节 以获取详细信息。

  • 如果未选择,VSTest 将在运行后向 TeamCity 报告测试结果(不会尝试发现自定义日志记录器)。

自定义测试记录器

VSTest.Console 支持自定义日志记录器,即可以处理测试执行过程中发生的事件的库。
TeamCity 有一个自定义的日志记录器,它提供实时的测试报告。 日志记录器必须在代理机器上手动安装,因为它需要将 dlls 复制到 VSTest.Console 的 扩展 目录。 当自定义记录器安装完成后,无需重启代理。

安装自定义日志记录器

1. 下载 custom logger

2. 将下载的存档内容提取到代理机器上的以下路径:

  • 针对 VisualStudio 2019 的更新:

PROGRAM_FILES(x86)\Microsoft Visual Studio\2019<Edition>\Common7\IDE\Extensions\TestPlatform\Extensions
  • 针对 VisualStudio 2017 更新 5 及以后的版本:

PROGRAM_FILES(x86)\Microsoft Visual Studio\2017<Edition>\Common7\IDE\Extensions\TestPlatform\Extensions
  • 适用于 VisualStudio 2017 至更新 4:

PROGRAM_FILES(x86)\Microsoft Visual Studio\2017<Edition>\Common7\IDE\CommonExtensions\Microsoft\TestWindow\Extensions
  • 针对 VisualStudio 2015:

PROGRAM_FILES\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\Extensions
  • 对于 VisualStudio 2013:

PROGRAM_FILES\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\Extensions
  • 针对 VisualStudio 2012:

PROGRAM_FILES\Microsoft Visual Studio 11.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\Extensions

3. 请通过在代理机器的控制台执行 vstest.console.exe /ListLoggers 来检查自定义日志记录器是否已正确安装。 如果日志记录器正确安装,您将看到列出的带有 FriendlyName TeamCity 的日志记录器:

VSTest.TeamCityLogger.TeamCityLogger Uri: logger://TeamCityLogger FriendlyName: TeamCity{info}

MSTest 设置

选项

描述

MSTest 元数据

/testmetadata:file 参数输入一个值。 请参阅 Microsoft 文档 中的详细信息。

要从元数据运行的测试列表

编辑 Testlist。 每一行都会被翻译成 /testlist:line 参数。 请参阅 Microsoft 文档 中的详细信息。

测试

要运行的单个测试的名称。 这个选项将被翻译成一系列的 /测试: 参数。 请参阅 Microsoft 文档 中的详细信息。

唯一

仅当在测试部分找到任何指定测试的一个唯一匹配时,才运行测试。

结果文件

/resultsfile:file_name 命令行参数输入一个值。 支持参数引用。 建议 将字段留空,以在构建临时目录中生成临时 \*.trx 文件。 请注意,目录可能会在构建之间进行清理。

为了将测试运行结果保存到指定的非默认文件中, 请输入一个值作为 /resultsfile:file_name 命令行参数。

  • 如果指定的路径是相对的,那么它将相对于构建检出目录。 如果指定的文件已经存在于检出目录中,构建代理将尝试删除该文件。 如果代理无法删除,构建将会失败。
    要在构建临时目录中创建 *.trx 报告,请使用 %system.teamcity.build.tempDir%。

  • 如果指定的路径是绝对的,那么将会"原样"使用。

最后修改日期: 16日 7月 2024年