TeamCity On-Premises 2024.03 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 宝石。 这个警告将出现在您的构建日志中,但您可以忽略它。 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 解释器传递给命令行运行器。

调试

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

测试报告

选项

描述

附加的报告生成器

如果您希望 TeamCity 在 构建结果 页面的专用 测试标签上显示测试结果,请在此处选择您使用的测试框架: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 支持是作为一个开源插件来实现的。 对于开发链接,请参考 插件的页面

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