ruby - bundle gem : rspec says 'No examples found'

标签 ruby rspec bundler

我正在将 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 的目录布局“正确”吗? (假设有官方布局)
  2. 为什么我的测试没有运行?当我执行 bundle exec rspec spec/mylib/* 时,spec/mylib/test_MYCLASS.rb 中的测试运行,而如果我执行 bundle exec rspec spec/mylib/,它说没有找到示例。

我看过类似的问题并用谷歌搜索,但没有一个能解决我的问题。

最佳答案

在同事的帮助下解决了。事实证明,规范文件必须以 _spec 后缀命名,并且 bundle exec rspec spec 有效。我之前使用 test_ 前缀命名规范文件。使用的是 bundler 1.3.5 和 rspec 2.14.1

关于ruby - bundle gem : rspec says 'No examples found' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20513601/

相关文章:

ruby-on-rails - 更改 rvm 使用的 rails 版本

javascript - ruby 代码片段中的 Coffesscript 变量

ruby-on-rails - flash[:notice]. should_not be_nil 在 rspec 中失败

ruby - 在 RSpec 中 stub /模拟全局常量

ruby - rspec 中定义的匿名类不会响应新的

ruby-on-rails - heroku - 我不想在本地安装 postgres!

ruby-on-rails - 如何在 Rails 4.2 中启用 gzip 文件创建?

ruby - 如何将字符串转换为散列中的 float

ruby-on-rails-3.1 - Rails 3.1.2 - Bundler 找不到 gem "railties"的兼容版本

ruby-on-rails - "Local"使用 capistrano 部署时 gem 不工作