Techioz Blog

バンドル gem: rspec に「例が見つかりません」と表示される

概要

私は Ruby on Rails プロジェクトの一部を gem に移植している最中です。新しい gem ディレクトリを作成するために、bundle gem を使用しました。 lib ディレクトリと spec ディレクトリの場合、gem のプロジェクト レイアウトは次のようになります。

|- lib
|  |- mylib
|  |  |- MYCLASS.rb
|  |  |- version.rb
|  |
|  |- mylib.rb
|
|- spec
   |- spec_helper.rb
   |- mylib
      |- test_MYCLASS.rb

spec/spec_helper.rb の内容:

require "mylib"

RSpec.configure do |config|
end

Bundle gem コマンドによって生成された、mylib.gemspec の関連部分:

spec.files         = `git ls-files`.split($/)
spec.executables   = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
spec.test_files    = spec.files.grep(%r{^(test|spec|features)/})
spec.require_paths = ["lib"]

Bundle exec rspec spec を実行すると、次のメッセージが表示されます。

No examples found.


Finished in 0.00004 seconds
0 examples, 0 failures

質問が 2 つあります。

同様の質問を調べたり、グーグル検索したりしましたが、どれも私の問題を解決しませんでした。

解決策

同僚の助けで解決しました。 spec ファイルには spec サフィックスを付けた名前を付ける必要があり、bundle exec rspec spec は機能することがわかりました。前に、spec ファイルに test プレフィックスを付けた名前を付けました。 Bundler 1.3.5 と rspec 2.14.1 を使用していました