Ruby on Railsプロジェクトをgemに移植している最中です。bundle gem
を使用して新しい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
mylib.gemspec
コマンドによって生成された、bundle gem
の関連部分:
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つの質問。
bundle exec rspec spec/mylib/*
を実行すると、spec/mylib/test_MYCLASS.rb
のテストが実行されますが、bundle exec rspec spec/mylib/
を実行すると、例が見つからないと表示されます。私は同様の質問を見てグーグルで検索しましたが、どれも私の問題を解決しません。
同僚の助けを借りて解決しました。スペックファイルには_spec
サフィックスを付けて名前を付ける必要があり、bundle exec rspec spec
が機能することがわかりました。以前、スペックファイルにtest_
プレフィックスを付けました。 bundler1.3.5とrspec2.14.1を使用していました
もう1つの考えられる問題は、require 'Rails_helper'
を忘れることです。これは通常、require 'rspec/Rails'
を含むほとんどのテストサポートライブラリが必要な場所です。