开发gem和测试
我是开发Rubygem的新手,但我想我会尝试一下。
最近在Railscasts上查看最新一集(http://railscasts.com/episodes/245-new-gem-with-bundler)我正在使用Bundler来创建我的gem。
但是我对如何测试我的gem毫无头绪。
当然我可以运行rake安装 ,然后从irb需要它,但这对我来说似乎是一种缓慢的工作流程。
我想做的是创建一个虚拟Rails应用程序,并通过引用它的源代码来要求gem。 这可能吗? 我确定我已经在某个地方读过这个…
谢谢!
您可以在Rakefile中包含以下行:
task :console do exec "irb -r mygem -I ./lib" end
这将创建一个rake任务来初始化一个新的irb会话并预加载你的库。 现在,您所要做的就是:
$ rake console
我不能推荐Ryan Bigg的这本指南: http : //bundler.io/v1.16/guides/creating_gem.html 。 它将指导您使用Bundler生成gem并设置自动化测试。 您无需手动运行代码即可开发function。 这是我用于自己的gem开发的工作流程,到目前为止工作得非常好。
更新:重读你的问题,听起来你的gem是一个Rails引擎。 我建议看一下JoséValim的EngineX。 它是一个生成器,可以创建一个带有虚拟Rails应用程序的gem进行测试( https://github.com/josevalim/enginex )。 如果您已经有很多代码,那么http://keithschacht.com/creating-a-rails-3-engine-plugin-gem/可能会帮助您设置一个虚拟应用程序进行测试。
你实际上可以这样做:
cd ~/my_gem_path
& bundle console
这将是一个快速测试:
My::Gem::VERSION
您可以在本地引用gem ,但如果您不想在每次更改gem时都运行bundle update
,则可以只使用完整路径来获取文件,或者将gem移动(或符号化)到/ vendor。
但说实话,听起来你需要写一些测试! ;)手动测试您所做的每一项更改都会变得令人厌烦且容易出错。 如果您刚开始写gem,请查看其他流行gem的来源,看看它们是如何测试的。
- 使用设计没有gem,我可以简单地复制文件吗?
- 可以在不调用Thor的情况下调用可执行的Thor驱动脚本吗?
- 升级后的pg_config,ruby pg,postgresql 9.0问题,centos 5
- 无法找到捆绑exec的rake
- rvm + rails install错误:在为nil执行gem(NoMethodError)未定义方法`ord’时:NilClass
- Jekyll / gem:未解决的规格
- ActiveRecord :: Base的未定义方法`mysql_connection’:Class
- gem install rails ERROR:执行gem时…(Errno :: EACCES)
- 用于跟踪Rails上的用户活动的通知系统