NUnit
NUnit 构建运行程序旨在直接在 TeamCity 服务器上运行 NUnit 测试。 然而,还有其他方法可以将 NUnit 测试结果报告给 TeamCity,有关详细信息和支持的版本,请参考 NUnit Support 页面。
请注意,此运行器仅支持 .NET Framework。 要运行 .NET Core 项目(以及 4.0 或更高版本的 .NET Framework 项目)的测试,请使用 .NET 构建运行程序,配合 test
命令进行。 请参阅 TeamCity 中的 NUnit 支持 文章以获取详细信息。
安装 NUnit
要使用 NUnit 构建运行程序,您需要通过以下选项之一在 TeamCity 代理上安装 NUnit NuGet package:
指导第一步构建步骤从 NuGet 包中安装 NUnit。
例如,您可以添加一个命令行构建步骤,该步骤将按照以下方式安装NUnit.Console
NuGet 包:%teamcity.tool.NuGet.CommandLine.DEFAULT%\tools\nuget.exe install NUnit.Console -version 3.6.0 -o packages请注意,
% \teamcity.tool.NuGet.CommandLine.DEFAULT%
是指安装在 TeamCity 代理 下的 NuGet 的引用。
您可以在 管理 | 工具 页面上为 agent 安装 NuGet,同时,您也可以在此页面上将任何已安装的 NuGet 版本标记为默认版本。之后,
% \teamcity.tool.NuGet.CommandLine.DEFAULT%
参数引用应正确解析为代理上的 NuGet 安装路径。
然后 nunit3-console 应出现在包目录下。在所有构建代理上手动安装 NUnit 到标准位置,并在您的 NUnit 构建步骤中配置到
nunit-console.exe
的路径。
安装扩展程序
从版本 3.2.0 开始,NUnit 需要在 TeamCity 代理 上安装 NUnit.Extension.NUnitProjectLoader
扩展。 从 3.4.1 版本开始,NUnit 要求在 TeamCity 代理 上安装 NUnit.Extension.TeamCityEventListener
扩展。
如果在 3.2.0 和 3.2.1 版本中找不到这些扩展,构建将在没有警告的情况下失败。 从3.4.1版本开始,将会显示一条消息建议您安装它们。
扩展可以作为单独的包进行安装,也可以使用 NUnit Console Version 3 NuGet 包进行批量安装。
NUnit 测试设置
设置 | 描述 |
---|---|
NUnit 运行器 | 选择用于运行测试的 NUnit 版本。 可用设置的集合会根据所选版本的不同而变化。 |
NUnit 控制台 | 适用于 NUnit 3.0 选择一个预安装的控制台工具或指定到 |
工作目录 | 适用于 NUnit 3.0 如果 构建工作目录 的路径与测试程序集的目录不同,请指定它的路径。 |
应用程序配置文件的路径 | 适用于 NUnit 3.0 指定运行测试时要使用的应用程序配置文件的路径。 路径应该是绝对的,或者相对于 checkout directory。 |
附加命令行参数 | 适用于 NUnit 3.0 输入 额外的命令行参数 以传递给 |
.NET 运行时 | 从 Platform 下拉菜单中,选择在 x64 机器上想要的执行模式。 支持的值包括: 从 Version 下拉菜单中,选择所需的 .NET Framework 版本。 支持的值包括: |
从此处运行测试 | 指定 NUnit 测试存储在哪个 .NET 程序集。 多个条目应以逗号分隔。 MSBuild 通配符得到了支持。 汇编文件的路径应是绝对路径或相对于 checkout directory 的相对路径。 在此示例中,TeamCity 将在所有项目目录中搜索测试程序集并运行这些测试: **\*.dll
通配符相对于检出目录进行指定。 |
请不要从中运行测试 | 指定应从待测试的 .NET 程序集列表中排除的程序集。 多个条目应以逗号分隔。 MSBuild 通配符得到了支持。 汇编文件的路径应是绝对路径或相对于 checkout directory 的相对路径。 在此示例中,TeamCity 将忽略在此目录中指定的测试: **\obj\**\*.dll
通配符相对于检出目录进行指定。 |
包含类别 | 指定要运行的 NUnit 测试类别。 多个条目应使用逗号分隔。 自从 NUnit 3.0 开始,不再支持类别表达式,而必须通过如 NUNit 文档 所描述的命令行进行设置。 |
排除类别 | 指定 NUnit 分类,以从要运行的测试中排除。 多个条目应以逗号分隔。 自 NUnit 3.0 起,不再支持 category expressions,并且必须按照 NUNit 文档中所述通过命令行进行设置。 |
按程序集运行进程 | 仅适用于 NUnit 3.0 之前的版本 如果您希望在新的进程中运行每个程序集,请选择此选项。 |
缩短测试失败反馈时间 | 使用此选项指示 TeamCity 先运行某些测试。 |
NUnit 代码覆盖率
要了解如何配置代码覆盖率选项,请参考 此文章。
对于 NUnit 3.x,仅支持 JetBrains dotCover 作为覆盖工具。