Rake
Rake 构建运行程序支持 Test::Unit 、Test-Spec 、Shoulda、RSpec、Cucumber 测试框架。 它与使用 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 上,使用 RVM 或 rbenv 进行配置会更简单。 您可以使用 Command Line 构建运行程序步骤来安装 Ruby 解释器和必要的 Ruby gems。 如果您希望为这些解释器自动配置代理需求,您需要在构建代理配置属性中注册其路径,然后在 Rake 构建运行程序配置中引用此属性名。 要安装 gem,执行:
您可以参考 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 任务 | 如果您不想使用 |
附加的 Rake 命令行参数 | 指定的参数将被添加到 ruby rake <Additional Rake command line parameters>
<TeamCity Rake Runner options, e.g TESTOPTS> <tasks>
|
Ruby 解释器
选项 | 描述 |
---|---|
使用默认的 Ruby | 请使用在 Ruby 环境配置器 构建功能设定中定义的 Ruby 解释器设定,或者解释器将在 |
Ruby 解释器路径 | Ruby 解释器的路径。 路径不得为空。 这个字段支持环境变量和系统变量的值。 例如: %env.I_AM_DEFINED_IN_BUILDAGENT_CONFIGURATION%
|
RVM 解释器 | 在此处指定 RVM 解释器名称,以及可选的在构建代理上配置的 gemset。 请注意,解释器名称不能为空。 如果没有指定 gemset,将使用默认的 gemset。 |
启动参数
选项 | 描述 |
---|---|
Bundler:bundle exec | 如果您的项目使用Bundler requirements管理器,而您的 Rakefile 不加载 bundler 设置脚本,那么这个选项将允许您通过使用 |
调试 | 检查跟踪调用 / 执行阶段选项,以便在构建日志中显示调用阶段数据。 |
测试报告
选项 | 描述 |
---|---|
附加的报告生成器 | 如果您希望 TeamCity 在 构建结果 页面的专用 测试标签上显示测试结果,请在此处选择您使用的测试框架:Test::Unit,Test-Spec,Shoulda,RSpec 或 Cucumber。 |
已知问题
如果您的 Rake 任务或测试在一个构建范围内并行运行,那么构建输出和测试结果将会不准确。
如果您正在使用 RVM,建议在当前 rvm sdk 尚未设置或首先调用
rvm system
时启动 TeamCity 代理。
额外的 Runner 选项
这些选项可以在 构建参数 部分中使用系统属性进行配置。
选项 | 描述 |
---|---|
| 允许指定用于启动 Rake 构建的哪个 rake gem。 |
| 如果您的应用程序使用的 test-unit gem 版本不是 Ruby sdk 中安装的最新版本,请在此处指定。 否则,Test::Unit 测试报告程序可能会尝试加载错误的 gem 版本,从而影响运行时行为。 如果已安装 test-unit gem ,但您的应用程序使用的是 Ruby 1.8.x SDK 中捆绑的 Test::Unit ,请将版本值设定为 'built-in'。 |
| 启动指定打包器宝石版本的仿真器(该宝石应已在代理上安装)。 |
| 如果 Gemfile 不位于检出目录的根目录中,则自定制 Gemfile。 |
| 如果 TeamCity 无法正确地从 |
开发链接
Rake 支持是作为一个开源插件来实现的。 对于开发链接,请参考 插件的页面。