ruby - 在 TeamCity 上构建和测试命令行 Gem

标签 ruby cucumber environment-variables teamcity aruba

我在 TeamCity 构建环境中测试命令行 gem 时遇到了一些问题。

我正在研究用于构建各种类型的 list 文件的 gem,elf_manifesto .它从命令行运行,我已经用 Cucumber 成功地测试了它,而且非常有用 Aruba gem .在本地,我正在使用 RVM、ruby 1.9.2 开发 Lion MBP。一切都很好。

将构建过程移动到工作中的 TeamCity 环境时出现了问题。 TeamCity 代理在 Windows 框上运行,问题似乎是当从 Aruba 触发命令行可执行文件时,在 Windows 框的路径环境中找不到脚本。这是构建日志中的 Cucumber 输出片段。

[13:46:37]: [Scenario: Start manifesto with no parameters] When  I run `manifesto`
[13:46:37]: [When  I run `manifesto`] ChildProcess::LaunchError: The system cannot find the    file specified. (2)

Aruba gem 旨在在运行测试时负责将可执行文件(位于 bin 目录中)添加到路径中。这在我的本地设置上工作正常,但在 Windows 上失败。我已经尝试将 RUBYPATH 环境变量添加到 TeamCity 中的构建参数,但到目前为止没有成功。

有人指点吗?

提前致谢。

最佳答案

根据我的经验,Aruba 不会将您的 gem 从 bin/ 添加到路径中。即使在基于 UNIX 的项目上,我也必须自己完成:

env.rb中:

PROJECT_ROOT = File.join(File.dirname(__FILE__),'..','..')
ENV['PATH'] = "#{File.join(PROJECT_ROOT,'bin')}#{File::PATH_SEPARATOR}#{ENV['PATH']}"

话虽这么说,但我从未让 Aruba 在 Windows 上像在 UNIX 上那样工作。

为了帮助诊断,请在您的功能上使用 @announce 标记(这会导致打印 stderr 和 stdout),甚至可能在您的自定义步骤中放入您自己的日志语句。

关于ruby - 在 TeamCity 上构建和测试命令行 Gem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8942801/

相关文章:

ruby-on-rails - 我怎样才能看到自动化日常 Rake 任务的输出?

ruby-on-rails - Rails rake 中止!无法将 Hash 转换为 String

ruby-on-rails - 预先加载和使用 'where' 方法时遇到问题

ruby-on-rails - 如何为电子邮件设置 Devise 发件人姓名

groovy - 使用 GEB 和 Cucumber 在页面中封装逻辑

java - 自动运行外部应用程序,使用 Cucumber 来测试主应用程序

ruby-on-rails-3 - Rails 3 cucumber 加载错误

c++ - setenv, unsetenv, putenv

asp.net - 根据 ASP.NET 中的环境变量更改 web.config 文件

python - 在 Flask 应用程序中设置和检索环境变量