2

我想将Coveralls.io用于我目前正在开发的宝石Headhunter。医生说,我应该简单地添加

gem 'coveralls', require: false

到项目,但据我所知,这不是在另一个 gem 中加载 gem 的正确方法。相反,类似的事情应该发生在.gemspec文件中。所以我试着像这样添加它:

s.add_development_dependency('coveralls', '>= 2.0')

但这不起作用 - 它破坏了我的 gem 的全部功能:

$ rake
/Users/josh/.rvm/rubies/ruby-2.0.0-p353/bin/ruby -S rspec ./spec/headhunter/css_hunter_spec.rb ./spec/headhunter/css_validator_spec.rb ./spec/headhunter/html_validator_spec.rb
/Users/josh/Documents/Work/MuheimWebdesign/headhunter/lib/headhunter/css_validator.rb:6:in `<class:CssValidator>': undefined method `full_gem_path' for nil:NilClass (NoMethodError)

这是破坏的文件:

require 'net/http'
require 'nokogiri/xml'

module Headhunter
  class CssValidator
    VALIDATOR_PATH = Gem.loaded_specs['headhunter'].full_gem_path + '/lib/css-validator/'

所以Gem.loaded_specs['headhunter']不再可用,不知道这里发生了什么。

这里有什么问题?

4

1 回答 1

3

我也想知道,我刚刚开始工作。

您需要添加:

spec.add_development_dependency "coveralls", "0.7.0"

到您的 .gemspec (在撰写本文时,0.7.0 是工作服 gem 的最新版本)

确保bundle install成功运行

并添加:

require 'coveralls'
Coveralls.wear!

到您的 spec_helper.rb 或 test_helper.rb 的开头,然后再要求其他任何内容。

希望这可以帮助。

于 2014-06-26T19:41:06.223 回答