在为特定应用程序框架创建 gem 时,我在测试目录中的 gem 中嵌套了一个项目。例如,对于特定于 Rails 的 gem,我会设置如下目录结构:
Rakefile
Gemfile
attached.gemspec
lib/attached.rb
lib/...
test/Gemfile
test/app/...
test/...
为了测试,我使用 gem 'attached', path: '...'
设置嵌套项目 Gemfile,并在测试目录中运行 rake test
。是否可以向我的主 Rakefile 添加一个任务,这将允许我在我的子项目中运行测试而无需先更改目录?
最佳答案
我总是使用 gem enginex
来帮助我使用集成的 Rails 应用程序设置我的 gem。
在根 Rakefile
中,他们写:
require 'rake/testtask'
Rake::TestTask.new(:test) do |t|
t.libs << 'lib'
t.libs << 'test'
t.pattern = 'test/**/*_test.rb'
t.verbose = false
end
task :default => :test
他们不使用嵌套的 Gemfile
,而是在 test_helper.rb
中加载 Rails 项目,rails 是 gem 的开发/测试依赖项。
检查 gem :
gem install enginex
或者检查source .这个 gem 作为新的插件生成器包含在 rails 3.1 中。
关于ruby-on-rails - 用于测试 Ruby Gem 的嵌套项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6011244/