我正在尝试为Ruby gem做贡献,而且我不了解如何在不使用全局安装的gem的情况下测试本地gem。
我想贡献的gem是命令行界面gem。我将gem克隆到一个目录中,然后cd
到该目录中。但是,当我在克隆的项目目录中运行终端中的命令时,它仍然使用全局gem。我甚至跑了
gem uninstall gemname
然后在新克隆的gem目录里面重做
gem install gemname
。
无论我对宝石做出什么改变,我都无法看到结果或我的贡献正在做什么,因为它总是在运行全球宝石。
当我尝试在克隆的gem目录中输入应该与gem交互的命令行命令时,我得到:
-bash: ~/.gem/ruby/2.1.0/bin/githubrepo: No such file or directory
我做了大量的研究,但我还没有得到它。帮助
答案 0 :(得分:1)
gem install gemname
将在当前目录中查找.gem文件。如果没有找到,它将在网上查找。
gem install --local /path/to/your/gemname.gem
将允许您定位特定目录。您可能需要先gem build gemname.gemspec
,以便进行更改。
我会在gem目录本身编写测试,而不是这样做。在那里运行代码时,你可以简单地在Ruby中require 'gemname'
来获取gem功能。
如果它是一个写得很好的宝石,它应该已经有了测试。它们很可能位于名为test或spec的目录中。看看这些测试并尝试继续以这种方式测试您的更改。这将使您的代码更改更有可能被接受为拉取请求。