TeamCity On-Premises 2025.07 Help

Rake

Rake 构建运行程序支持 Test::Unit 、Test-Spec 、 ShouldaRSpecCucumber 测试框架。 它与使用 Ruby 版本管理器(MRI Ruby、JRuby、IronRuby、REE、MacRuby 等)安装的 Ruby 解释器兼容,需要 Rake 0.7.3 gem 或更高版本。

前提条件

确保至少在一个构建代理上安装了 Ruby 解释器(MRI Ruby、JRuby、IronRuby、REE、MacRuby 等)和 rake 0.7.3 或更高版本的 gem(必需),以及您的 Ruby(或 ROR)项目和测试框架所需的所有 gem。 您可以在不同的目录中安装多个 Ruby 解释器。 在 Linux / macOS 上,使用 RVMrbenv 进行配置会更简单。 您可以使用 Command Line 构建运行程序步骤来安装 Ruby 解释器和必要的 Ruby gems。 如果您希望为这些解释器自动配置代理需求,您需要在构建代理配置属性中注册其路径,然后在 Rake 构建运行程序配置中引用此属性名。 要安装 gem,执行:

gem install <gem_name>

您可以参考 Ruby Gems 手册 以获取更多信息。

您可以使用 Bundler gem 来安装 gems,而不是使用 gem 命令。

重要提示

  • Ruby 的 待处理规范显示为 忽略的测试 ,位于 概述 选项卡中。

  • Rake Runner 使用其自己的单元测试运行器,并使用 RUBYLIB 环境变量来加载它。 您需要确保您的程序不会清除此环境变量,但您可以向其追加路径。

  • 如果您在 Windows 操作系统下启用 --color 选项运行 RSpec,RSpec 将建议您安装 win32console gem。 这个警告将出现在您的构建日志中,但您可以忽略它。 TeamCity Rake Runner 不支持在构建日志中使用彩色输出,并且也不使用此功能。

  • Rake Runner 用自定义格式器运行 spec 示例。 如果您使用额外的控制台格式化程序,您的构建日志将包含冗余信息。

  • Spec::Rake::SpecTask.spec_opts 的 rakefile 受到 SPEC_OPTS 命令行参数的影响。 Rake Runner 总是使用 SPEC_OPTS 来设置其自定义格式化程序。 因此,您应在 Web UI 中设置 Spec Options。 Cucumber 测试选项也存在同样的限制。

  • 要将 HTML 报告包含到构建结果中,您可以为它们添加相应的 报告标签页

Rake 运行器设置

Rake 参数

选项

描述

到 Rakefile 文件的路径

如果您不想使用默认的路径,请输入一个 Rakefile 路径。 指定的路径应相对于 Build Checkout Directory

Rakefile 内容

将 Rakefile 的内容输入,而不是使用现有的 Rakefile。 新的 Rakefile 将在运行 Rake 之前,根据指定内容动态创建。

工作目录

可选. 指定是否与 构建检出目录 不同。

Rake 任务

如果您不想使用 默认 任务,请输入空格分隔的任务名称。 例如, test:functionalsmytask:test mytask:test2

附加的 Rake 命令行参数

指定的参数将被添加到 rake 命令行。 命令行将有以下格式:

ruby rake <Additional Rake command line parameters> <TeamCity Rake Runner options, e.g TESTOPTS> <tasks>

Ruby 解释器

选项

描述

使用默认的 Ruby

请使用在 Ruby 环境配置器 构建功能设定中定义的 Ruby 解释器设定,或者解释器将在 PATH 中进行搜索。

Ruby 解释器路径

Ruby 解释器的路径。 路径不得为空。 这个字段支持环境变量和系统变量的值。 例如:

%\env.I_AM_DEFINED_IN_BUILDAGENT_CONFIGURATION%

RVM 解释器

在此处指定 RVM 解释器名称,以及可选的在构建代理上配置的 gemset。 请注意,解释器名称不能为空。 如果没有指定 gemset,将使用默认的 gemset。

启动参数

选项

描述

Bundler:bundle exec

如果您的项目使用 Bundler requirements管理器,而您的 Rakefile 不加载 bundler 设置脚本,那么这个选项将允许您通过使用 bundle exec 命令模拟来启动 rake 任务。 如果您想要执行 bundle install 命令,您需要在 Rake 步骤之前的 命令行 步骤中进行。 另外,记得设置 Ruby 环境配置器 构建功能,以便自动将 Ruby 解释器传递给命令行运行器。

调试

选中 跟踪调用/执行阶段 选项以在构建日志中显示 Invoke阶段数据。

测试报告

选项

描述

附加的报告生成器

如果您希望 TeamCity 在 构建结果 页面的专用 Tests 选项卡上显示测试结果,请在此处选择您使用的测试框架:Test::Unit、Test-Spec、Shoulda、RSpec 或 Cucumber。

已知问题

  • 如果您的 Rake 任务或测试在一个构建范围内并行运行,那么构建输出和测试结果将会不准确。

  • 如果您正在使用 RVM,建议在当前 rvm sdk 尚未设置或首先调用 rvm system 时启动 TeamCity 代理。

额外的 Runner 选项

这些选项可以在 构建参数 部分中使用系统属性进行配置。

选项

描述

system.teamcity.rake.runner.gem.rake.version

允许指定用于启动 Rake 构建的哪个 rake gem。

system.teamcity.rake.runner.gem.testunit.version

如果您的应用程序使用的 test-unit gem 版本不是 Ruby sdk 中安装的最新版本,请在此处指定。 否则,Test::Unit 测试报告程序可能会尝试加载错误的 gem 版本,从而影响运行时行为。 如果已安装 test-unit gem ,但您的应用程序使用的是 Ruby 1.8.x SDK 中捆绑的 Test::Unit ,请将版本值设定为 'built-in'。

system.teamcity.rake.runner.gem.bundler.version

启动指定打包器宝石版本的仿真器(该宝石应已在代理上安装)。

system.teamcity.rake.runner.custom.gemfile

如果 Gemfile 不位于检出目录的根目录中,则自定制 Gemfile。

system.teamcity.rake.runner.custom.bundle.path

如果 TeamCity 无法正确地从 <Gemfile_containing_directory>/.bundle/config 获取,设置 BUNDLE_PATH

Rake 支持是作为一个开源插件来实现的。 有关开发链接,请参阅 插件的存储库

最后修改日期: 2025年 8月 12日