运行bundle exec rspec提示No examples found问题求助
RSpec 输出"No examples found" 排查方案
- 首先确认终端工作目录是否为项目根目录(即包含
spec文件夹、Gemfile的目录层级),RSpec默认只扫描当前工作目录下的spec文件,在子目录下执行命令会触发该报错。可执行pwd查看当前路径,路径不符时用cd切换到项目根目录后重试命令即可。 - 验证spec文件路径与命名规范是否符合要求:默认规则下,RSpec只会识别文件名以
_spec.rb结尾、且存放于spec目录下的文件,注意类Unix系统对文件名大小写敏感,Test_spec.rb与test_spec.rb会被判定为不同文件。可手动指定文件路径执行命令验证:bundle exec rspec spec/你的测试文件名_spec.rb,如果该命令可以正常执行用例,说明是全局路径匹配规则问题。 - 检查spec文件内的用例语法是否正确:所有测试逻辑必须包裹在
it/specify块内,同时要在文件头部引入对应的helper文件(非Rails项目引入spec_helper,Rails项目引入rails_helper),以下为合法用例示例:
# spec/lib/calculator_spec.rb 对应测试 lib/calculator.rb require "spec_helper" RSpec.describe Calculator do it "执行加法运算返回正确结果" do expect(Calculator.new.add(1,2)).to eq(3) end end
- 检查项目根目录下的
.rspec配置文件,确认是否存在自定义--pattern匹配规则,若自定义规则与当前文件命名/路径不匹配,也会导致RSpec无法识别用例。
内容的提问来源于stack exchange,提问作者Hazel Alvarez
相关产品推荐
相关产品推荐

