我正在将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搜索,但没有一个能解决我的问题。
答案 0 :(得分:44)
在我的同事的帮助下解决了这个问题。事实证明,spec文件必须以_spec
后缀命名,并且bundle exec rspec spec
有效。我之前使用test_
前缀命名spec文件。使用的是bundler 1.3.5和rspec 2.14.1
答案 1 :(得分:0)
另一个可能的问题是忘记Console.WriteLine("Down arrow");
,这通常是您需要大多数测试支持库的地方,包括require 'rails_helper'
。