2

現在開発中のgem HeadhunterにCoveralls.ioを使用したいと考えています。ドキュメントによると、単に追加する必要があります

gem 'coveralls', require: false

プロジェクトに追加しますが、私の知る限り、これは別の gem 内に gem をロードする正しい方法ではありません。代わりに、そのようなことが.gemspecファイルで発生するはずです。だから私はこのようにそれを追加しようとしました:

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

しかし、これはうまくいきません - それは私の宝石の機能全体を壊します:

$ 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がcoveralls gemの最新バージョンです)

bundle install正常に実行されることを確認してください

そして追加:

require 'coveralls'
Coveralls.wear!

他のものを要求する前に、spec_helper.rb または test_helper.rb の先頭に追加します。

お役に立てれば。

于 2014-06-26T19:41:06.223 に答える