我正在将rails项目中ruby的一部分移植到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
两个问题.
这个宝石的目录布局是否"正确"?(假设有官方布局)
为什么我的测试没有运行?当我这样做bundle exec rspec spec/mylib/*
,测试在spec/mylib/test_MYCLASS.rb
运行,而如果我这样做bundle exec rspec spec/mylib/
,它说没有找到实例.
我看过类似的问题并用Google搜索,但没有一个能解决我的问题.