【问题标题】:bundle gem: rspec says 'No examples found'bundle gem:rspec 说“没有找到示例”
【发布时间】:2013-12-11 08:00:32
【问题描述】:

我正在将 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/,它显示没有找到示例。

我查看了类似的问题并在 Google 上四处搜索,但没有一个能解决我的问题。

【问题讨论】:

  • 看来 git 没有计算 spec 文件夹。请使用git show HEAD:spec 命令的输出指定我们。

标签: ruby rspec bundler


【解决方案1】:

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

【讨论】:

  • 该死的,谢谢。我输入了_specs.rb,这就是导致我出现问题的原因。
  • 以及——我的规范目录是规范
  • 我的正确命名为_spec.rb 后缀,但我仍然有这个问题。
  • 我的文件完全是空的,我一直在错误的文件中编码
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-21
    • 2012-09-29
    • 1970-01-01
    • 1970-01-01
    • 2019-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多