running Guard rspec for ruby kata



所以我试图使用守卫rspec只是为ruby,而不是为rails。测试运行良好,但唯一的问题是它只查找spec.rb文件,而不查找实际文件。我有一个失败的arabic_to_roman。Rb和arabic_to_roman_spec.rb。Guardfile安装在roman_numerals_kata目录下。它只查找_spec。而不是arabic_to_roman.rb文件。下面是Guardfile的样子

  1 # A sample Guardfile
  2 # More info at https://github.com/guard/guard#readme
  3 
  4 guard 'rspec' do
  5   watch(%r{^spec/.+_spec.rb$})
  6   watch(%r{^lib/(.+).rb$})     { |m| "spec/lib/#{m[1]}_spec.rb" }
  7   watch('spec/spec_helper.rb')  { "spec" }
  8 
  9   # Rails example
 10   watch(%r{^app/(.+).rb$})                           { |m| "spec/#{m[1]}_spec.rb" }
 11   watch(%r{^app/(.*)(.erb|.haml)$})                 { |m| "spec/#{m[1]}#     {m[2]}_spec.rb" }
 12   watch(%r{^app/controllers/(.+)_(controller).rb$})  { |m| ["spec/routing/#  {m[1]}_routing_spec.rb", "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb", "spec/acceptance/#{m[1]}_spec.rb"] }
 13   watch(%r{^spec/support/(.+).rb$})                  { "spec" }
 14   watch('config/routes.rb')                           { "spec/routing" }
 15   watch('app/controllers/application_controller.rb')  { "spec/controllers" }
 16 
 17   # Capybara features specs
 18   watch(%r{^app/views/(.+)/.*.(erb|haml)$})          { |m| "spec/features/#{m[1]}_spec.rb" }
 19 
 20   # Turnip features and steps
 21   watch(%r{^spec/acceptance/(.+).feature$})
 22   watch(%r{^spec/acceptance/steps/(.+)_steps.rb$})   { |m| Dir[File.join("**/#{m[1]}.feature")][0] || 'spec/acceptance' }
23 end
24 

您的目录结构是什么?

基于这个配置,Guard会在lib目录下查找任何ruby文件,并执行嵌套在spec/lib/中的匹配测试。这些细节在guardfile的这一行:watch(%r{^lib/(.+).rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" } .

使用这个Guardfile(它匹配我的标准项目布局),你应该有以下文件夹布局:

BASE_DIR
├── Guardfile
├── lib
│   ├── README
│   └── arabic_to_roman.rb
├── spec
│   ├── lib
│   │   └── arabic_to_roman_spec.rb
│   └── spec_helper.rb

如果不希望遵循标准文件夹布局,则可以像这样修改Guardfile

guard 'rspec' do
  watch(%r{^spec/.+_spec.rb$})
  watch(%r{^(.+).rb$})     { |m| "spec/#{m[1]}_spec.rb" }
  watch('spec/spec_helper.rb')  { "spec" }
end

注意,第二个watch命令是在basedir而不是在lib/*

中查找的。

希望这对你有帮助

相关内容

  • 没有找到相关文章

最新更新