NUnit
NUnit 构建运行器旨在在 TeamCity 服务器上运行 NUnit 测试。 不过,您也可以使用 .NET 运行程序来启动 NUnit 测试并在 TeamCity 中查看测试报告。 请参考 TeamCity 中的 NUnit 支持 文章以获取更多信息。
note
NUnit 构建运行程序仅支持 .NET Framework。 对于 .NET 项目(以及针对 4.0 或更高版本的 .NET Framework 项目)运行测试,请使用 .NET 构建运行器,并改用
test
命令。 请参阅 TeamCity 中的 NUnit 支持 文章以获取详细信息。
版本 2024.07 引入了一个更新的 NUnit runner,与旧版 runner 相比,它不允许您选择 .NET Runtime 或 .NET Framework 版本。 如有需要,请使用 附加命令行参数 字段指定这些设置。 此外,更新后的 runner 不再支持过时的 NUnit 2.x.x 版本。
在 2024.07 版本中,更新和传统 runner 都可以正常使用,并可以从 Build Steps页面访问。 在接下来的发布周期中,预计会将旧版 runner 拆分并移至单独的插件。 完成后,您需要从 JetBrains Marketplace 手动 安装此插件以继续使用旧版运行程序。 因此,我们建议将您的项目迁移到更新的 NUnit 或常规 .NET runners。
要使用 NUnit 构建运行程序,您需要通过以下选项之一在 TeamCity 代理上安装 NUnit NuGet package:
将第一个构建步骤指示为从 NuGet 包安装 NUnit。
例如,您可以添加一个 Command Line 构建步骤来安装如下所示的
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 的引用。您可以在 管理 | 工具 页面上为代理安装 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 控制台 | 选择一个预安装的控制台工具或指定到 |
工作目录 | 如果 构建工作目录 的路径与测试程序集的目录不同,请指定它的路径。 |
应用程序配置文件的路径 | 指定运行测试时要使用的应用程序配置文件的路径。 路径应该是绝对的,或者相对于 checkout directory。 |
附加命令行参数 | 输入 额外的命令行参数 以传递给 |
从此处运行测试 | 指定 NUnit 测试存储在哪个 .NET 程序集。 多个条目应以逗号分隔。 MSBuild 通配符得到了支持。 汇编文件的路径应是绝对路径或相对于 checkout directory 的相对路径。 在此示例中,TeamCity 将在所有项目目录中搜索测试程序集并运行这些测试:
通配符相对于检出目录进行指定。 |
请不要从中运行测试 | 指定应从待测试的 .NET 程序集列表中排除的程序集。 多个条目应以逗号分隔。 MSBuild 通配符得到了支持。 汇编文件的路径应是绝对路径或相对于 checkout directory 的相对路径。 在此示例中,TeamCity 将忽略在此目录中指定的测试:
通配符相对于检出目录进行指定。 |
包含类别 | 指定要运行的 NUnit 测试类别。 多个条目应使用逗号分隔。 自从 NUnit 3.0 开始,不再支持类别表达式,而必须通过如 NUNit 文档 所描述的命令行进行设置。 |
排除类别 | 指定 NUnit 分类,以从要运行的测试中排除。 多个条目应以逗号分隔。 自 NUnit 3.0 起,不再支持 category expressions,并且必须按照 NUNit 文档中所述通过命令行进行设置。 |
缩短测试失败反馈时间 | 使用此选项指示 TeamCity 先运行某些测试。 |
设置 | 描述 |
---|---|
NUnit runner | 选择用于运行测试的 NUnit 版本。 可用设置的集合会根据所选版本的不同而变化。 |
NUnit 控制台 | 选择一个预安装的控制台工具或指定到 仅在选择 NUnit 3.0 时可用。 |
工作目录 | 如果 构建工作目录 的路径与测试程序集的目录不同,请指定它的路径。 仅在选择 NUnit 3.0 时可用。 |
应用程序配置文件的路径 | 指定运行测试时要使用的应用程序配置文件的路径。 路径应该是绝对的,或者相对于 checkout directory。 仅在选择 NUnit 3.0 时可用。 |
附加命令行参数 | 输入 额外的命令行参数 以传递给 仅在选择 NUnit 3.0 时可用。 |
.NET 运行时 | 从 平台 下拉菜单中,选择在 x64 机器上所需的执行模式。 支持的值包括: 从 版本 下拉菜单中,选择所需的 .NET Framework 版本。 支持的值包括: |
从此处运行测试 | 指定 NUnit 测试存储在哪个 .NET 程序集。 多个条目应以逗号分隔。 MSBuild 通配符得到了支持。 汇编文件的路径应是绝对路径或相对于 checkout directory 的相对路径。 在此示例中,TeamCity 将在所有项目目录中搜索测试程序集并运行这些测试:
通配符相对于检出目录进行指定。 |
请不要从中运行测试 | 指定应从待测试的 .NET 程序集列表中排除的程序集。 多个条目应以逗号分隔。 MSBuild 通配符得到了支持。 汇编文件的路径应是绝对路径或相对于 checkout directory 的相对路径。 在此示例中,TeamCity 将忽略在此目录中指定的测试:
通配符相对于检出目录进行指定。 |
包含类别 | 指定要运行的 NUnit 测试类别。 多个条目应使用逗号分隔。 自从 NUnit 3.0 开始,不再支持类别表达式,而必须通过如 NUNit 文档 所描述的命令行进行设置。 |
排除类别 | 指定 NUnit 分类,以从要运行的测试中排除。 多个条目应以逗号分隔。 自 NUnit 3.0 起,不再支持 category expressions,并且必须按照 NUNit 文档中所述通过命令行进行设置。 |
按程序集运行进程 | 如果您希望在新的进程中运行每个程序集,请选择此选项。 此选项仅适用于 3.0 之前版本的 legacy NUnit runner。 |
缩短测试失败反馈时间 | 使用此选项指示 TeamCity 先运行某些测试。 |
要了解如何配置代码覆盖率选项,请参考 此文章。
对于 NUnit 3.x,仅支持 JetBrains dotCover 作为覆盖工具。
Thanks for your feedback!