ruby bundle gem:rspec says 'No examples found'

4ktjp1zp  于 11个月前  发布在  Ruby
关注(0)|答案(3)|浏览(316)

我正在将ruby on rails项目的一部分移植到gem中。我已经使用bundle gem创建了新的gem目录。对于libspec目录,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


两个问题。
1.这个gem的目录布局是“正确的”吗?(假设有一个官方的布局)
1.为什么我的测试没有运行?当我执行bundle exec rspec spec/mylib/*时,spec/mylib/test_MYCLASS.rb中的测试运行,而如果我执行bundle exec rspec spec/mylib/,它说没有找到示例。
我看过类似的问题,也在谷歌上搜索过,但没有一个能解决我的问题。

wvt8vs2t

wvt8vs2t1#

在我同事的帮助下解决了这个问题。原来spec文件必须用_spec后缀命名,bundle exec rspec spec可以工作。我以前用test_前缀命名spec文件。使用的是spec 1.3.5和rspec 2.14.1

cqoc49vn

cqoc49vn2#

另一个可能的问题是忘记了require 'rails_helper',这通常是你需要大多数测试支持库的地方,包括require 'rspec/rails'

qv7cva1a

qv7cva1a3#

spec文件不仅需要使用_spec.rb后缀命名,还需要位于名为/spec的目录中,并且需要从根目录调用rspec

相关问题