【发布时间】:2015-05-07 09:10:55
【问题描述】:
TL;TR
我们有两个项目(minitest 项目和一个页面对象项目)。 Minitest 项目使用页面对象项目。当 Jenkins 运行测试时,我们使用页面对象项目的远程 git 路径。当我们在本地运行它时,我们将 minitest 项目中的 gem 文件更改为使用本地路径\或本地 git repo。这导致我们需要不断地更改 gem 文件。我们不想这样做。我们如何设置它以便我们不需要不断更改 gem 文件?
长版
我有两个紧密耦合的 Ruby 项目。这两个项目都用于支持 Capybara 的测试。一个项目包含 Minitest 测试。另一个项目包含页面对象。 minitest 项目使用页面对象项目。页面对象项目作为 gem 发布,以便其他团队可以使用它。我们经常需要同时编辑两个项目。
我正在使用 Bundler 来管理 gem。这些项目曾经位于两个不同的 git repos 中。
测试在 Jenkins 中运行,当我们处理它们时,我们会在本地运行它们。当测试在 Jenkins 中运行时,minitest 项目可以将页面对象项目作为已发布的 gem 或远程 git 存储库引用。
我们遇到的问题是我们一直需要更改 minitest 项目的 gem 文件。我们会将其从指向远程 git 存储库更改为签出(本地)路径。或者我们会指向一个本地 git repo。在这种情况下,我们仍然需要使用本地分支名称更新 minitest 项目的 gem 文件。我们需要用任何一种方法编辑 gem 文件,然后我们必须记住在签入和合并之前将其更改回来。
然后,我们将两个项目都移到了一个仓库中。现在 minitest 项目中的 gem 文件只使用相对路径,例如path => ...。这意味着我们不需要在 minitest 项目中不断更新 gem 文件。但是,现在当我们运行 bundle install 或 bundle update 时,只使用了 minitest 项目中的 gem 文件(至少这是我假设发生的情况)。
如何在我的开发机器上使用与 Jenkins 中不同的 gem 路径\git 存储库,而无需不断更改 gem 文件?
我想知道在这种情况下我应该使用什么方法?可以避免对 minitest 项目的 gem 文件进行更改吗?
【问题讨论】:
标签: ruby git gem bundler gemfile