我的Rails 3应用程序中的Metric-fu将无法运行

时间:2010-12-01 10:02:31

标签: ruby-on-rails metric-fu

在Rails 3应用程序中安装metric-fu,将其放入我的Gemfile中。但是当我运行rake任务时它失败了。下面的错误,任何想法如何解决这个问题?

$ rake metrics:all --trace
(in /home/pma/Documents/boss-mocha)
** Invoke metrics:all (first_time)
** Execute metrics:all
  parse error on value ")" (tRPAREN)
  skipping app/views/software_projects/_form.html.erb
  parse error on value ")" (tRPAREN)
  skipping app/views/instruction_items/_form.html.erb
  parse error on value ")" (tRPAREN)
  skipping app/views/companies/_form.html.erb
  parse error on value ")" (tRPAREN)
  skipping app/views/instructions/_form.html.erb
  parse error on value ")" (tRPAREN)
  skipping app/views/company_groups/_form.html.erb
  parse error on value ")" (tRPAREN)
  skipping app/views/replies/_form.html.erb
  parse error on value ")" (tRPAREN)
  skipping app/views/replies/edit.html.erb
  parse error on value ")" (tRPAREN)
  skipping app/views/devise/unlocks/new.html.erb
  parse error on value ")" (tRPAREN)
  skipping app/views/devise/registrations/new.html.erb
  parse error on value ")" (tRPAREN)
  skipping app/views/devise/registrations/edit.html.erb
  parse error on value ")" (tRPAREN)
  skipping app/views/devise/confirmations/new.html.erb
  parse error on value ")" (tRPAREN)
  skipping app/views/devise/passwords/new.html.erb
  parse error on value ")" (tRPAREN)
  skipping app/views/devise/passwords/edit.html.erb
  parse error on value ";" (tSEMI)
  skipping app/views/devise/shared/_links.erb
  parse error on value ")" (tRPAREN)
  skipping app/views/devise/sessions/new.html.erb
** Running the specs/tests in the [test] environment
saikuro --error_cyclo 7 --output_directory tmp/metric_fu/scratch/saikuro --formater text --input_directory app lib --cyclo  --filter_cyclo 0 --warn_cyclo 5 --input_directory app --input_directory lib 
Parsing app/views/ui/dashboard_panel.html.erb
Parsing app/views/ui/dashboard.html.erb
Parsing app/views/ui/index.html.erb
Parsing app/views/ui/left_menu.html.erb
Parsing app/views/ui/dashboard_panel.js.erb
Parsing app/views/devise/sessions/new.html.erb
Parsing app/views/devise/shared/_links.erb
Parsing app/views/devise/shared/_custom_user_fields.html.erb
Parsing app/views/devise/passwords/edit.html.erb
Parsing app/views/devise/passwords/new.html.erb
Parsing app/views/devise/confirmations/new.html.erb
Parsing app/views/devise/mailer/unlock_instructions.html.erb
Parsing app/views/devise/mailer/confirmation_instructions.html.erb
Parsing app/views/devise/mailer/reset_password_instructions.html.erb
Parsing app/views/devise/registrations/edit.html.erb
Parsing app/views/devise/registrations/new.html.erb
Parsing app/views/devise/unlocks/new.html.erb
Parsing app/views/employee_leaves/.componentsMenu.html.erb
Parsing app/views/employee_leaves/.folder.html.erb
Parsing app/views/employee_leaves/new.html.erb
Parsing app/views/employee_leaves/index.html.erb
Parsing app/views/users/contract.html.erb
Parsing app/views/users/leave.html.erb
Parsing app/views/users/attendance.html.erb
Parsing app/views/users/show.html.erb
Parsing app/views/users/index.html.erb
Parsing app/views/users/tabs.html.erb
Parsing app/views/users/history.html.erb
Lexer received an error for line 5 char 2
Parsing app/views/statistics/index.html.erb
Parsing app/views/layouts/application.html.erb
Parsing app/views/recruitment/index.html.erb
Parsing app/views/replies/update.js.erb
Parsing app/views/replies/edit.html.erb
Parsing app/views/replies/create.js.erb
Parsing app/views/replies/_form.html.erb
Parsing app/views/company_groups/edit.html.erb
Parsing app/views/company_groups/new.html.erb
Parsing app/views/company_groups/show.html.erb
Parsing app/views/company_groups/index.html.erb
Parsing app/views/company_groups/_form.html.erb
Parsing app/views/instructions/_item.html.erb
Parsing app/views/instructions/edit.html.erb
Parsing app/views/instructions/new.html.erb
Parsing app/views/instructions/create.js.erb
Parsing app/views/instructions/show.html.erb
Parsing app/views/instructions/index.html.erb
Parsing app/views/instructions/manage.html.erb
Parsing app/views/instructions/_form.html.erb
Parsing app/views/companies/edit.html.erb
Parsing app/views/companies/new.html.erb
Parsing app/views/companies/show.html.erb
Parsing app/views/companies/index.html.erb
Parsing app/views/companies/_form.html.erb
Parsing app/views/instruction_items/edit.html.erb
Parsing app/views/instruction_items/_reply.html.erb
Parsing app/views/instruction_items/new.html.erb
Parsing app/views/instruction_items/create.js.erb
Parsing app/views/instruction_items/show.html.erb
Parsing app/views/instruction_items/_form.html.erb
Parsing app/views/software_projects/edit.html.erb
Parsing app/views/software_projects/new.html.erb
Parsing app/views/software_projects/show.html.erb
Parsing app/views/software_projects/index.html.erb
Parsing app/views/software_projects/_form.html.erb
Parsing app/controllers/application_controller.rb
Parsing app/controllers/replies_controller.rb
Parsing app/controllers/users_controller.rb
Parsing app/controllers/ui_controller.rb
Parsing app/controllers/statistics_controller.rb
Parsing app/controllers/software_projects_controller.rb
Parsing app/controllers/company_groups_controller.rb
Parsing app/controllers/recruitment_controller.rb
Parsing app/controllers/instruction_items_controller.rb
Parsing app/controllers/employee_leaves_controller.rb
Parsing app/controllers/companies_controller.rb
Parsing app/controllers/instructions_controller.rb
Parsing app/models/instruction_item.rb
Parsing app/models/user.rb
Parsing app/models/reply.rb
Parsing app/models/software_project_test_item.rb
Parsing app/models/instruction.rb
Parsing app/models/company_group.rb
Parsing app/models/employee_leave.rb
Parsing app/models/software_project.rb
Parsing app/models/company.rb
Parsing app/helpers/recruitment_helper.rb
Parsing app/helpers/users_helper.rb
Parsing app/helpers/statistics_helper.rb
Parsing app/helpers/software_projects_helper.rb
Parsing app/helpers/companies_helper.rb
Parsing app/helpers/company_groups_helper.rb
Parsing app/helpers/employee_leaves_helper.rb
Parsing app/helpers/application_helper.rb
Parsing app/views/ui/dashboard_panel.html.erb
Parsing app/views/ui/dashboard.html.erb
Parsing app/views/ui/index.html.erb
Parsing app/views/ui/left_menu.html.erb
Parsing app/views/ui/dashboard_panel.js.erb
Parsing app/views/devise/sessions/new.html.erb
Parsing app/views/devise/shared/_links.erb
Parsing app/views/devise/shared/_custom_user_fields.html.erb
Parsing app/views/devise/passwords/edit.html.erb
Parsing app/views/devise/passwords/new.html.erb
Parsing app/views/devise/confirmations/new.html.erb
Parsing app/views/devise/mailer/unlock_instructions.html.erb
Parsing app/views/devise/mailer/confirmation_instructions.html.erb
Parsing app/views/devise/mailer/reset_password_instructions.html.erb
Parsing app/views/devise/registrations/edit.html.erb
Parsing app/views/devise/registrations/new.html.erb
Parsing app/views/devise/unlocks/new.html.erb
Parsing app/views/employee_leaves/.componentsMenu.html.erb
Parsing app/views/employee_leaves/.folder.html.erb
Parsing app/views/employee_leaves/new.html.erb
Parsing app/views/employee_leaves/index.html.erb
Parsing app/views/users/contract.html.erb
Parsing app/views/users/leave.html.erb
Parsing app/views/users/attendance.html.erb
Parsing app/views/users/show.html.erb
Parsing app/views/users/index.html.erb
Parsing app/views/users/tabs.html.erb
Parsing app/views/users/history.html.erb
Lexer received an error for line 5 char 2
Parsing app/views/statistics/index.html.erb
Parsing app/views/layouts/application.html.erb
Parsing app/views/recruitment/index.html.erb
Parsing app/views/replies/update.js.erb
Parsing app/views/replies/edit.html.erb
Parsing app/views/replies/create.js.erb
Parsing app/views/replies/_form.html.erb
Parsing app/views/company_groups/edit.html.erb
Parsing app/views/company_groups/new.html.erb
Parsing app/views/company_groups/show.html.erb
Parsing app/views/company_groups/index.html.erb
Parsing app/views/company_groups/_form.html.erb
Parsing app/views/instructions/_item.html.erb
Parsing app/views/instructions/edit.html.erb
Parsing app/views/instructions/new.html.erb
Parsing app/views/instructions/create.js.erb
Parsing app/views/instructions/show.html.erb
Parsing app/views/instructions/index.html.erb
Parsing app/views/instructions/manage.html.erb
Parsing app/views/instructions/_form.html.erb
Parsing app/views/companies/edit.html.erb
Parsing app/views/companies/new.html.erb
Parsing app/views/companies/show.html.erb
Parsing app/views/companies/index.html.erb
Parsing app/views/companies/_form.html.erb
Parsing app/views/instruction_items/edit.html.erb
Parsing app/views/instruction_items/_reply.html.erb
Parsing app/views/instruction_items/new.html.erb
Parsing app/views/instruction_items/create.js.erb
Parsing app/views/instruction_items/show.html.erb
Parsing app/views/instruction_items/_form.html.erb
Parsing app/views/software_projects/edit.html.erb
Parsing app/views/software_projects/new.html.erb
Parsing app/views/software_projects/show.html.erb
Parsing app/views/software_projects/index.html.erb
Parsing app/views/software_projects/_form.html.erb
Parsing app/controllers/application_controller.rb
Parsing app/controllers/replies_controller.rb
Parsing app/controllers/users_controller.rb
Parsing app/controllers/ui_controller.rb
Parsing app/controllers/statistics_controller.rb
Parsing app/controllers/software_projects_controller.rb
Parsing app/controllers/company_groups_controller.rb
Parsing app/controllers/recruitment_controller.rb
Parsing app/controllers/instruction_items_controller.rb
Parsing app/controllers/employee_leaves_controller.rb
Parsing app/controllers/companies_controller.rb
Parsing app/controllers/instructions_controller.rb
Parsing app/models/instruction_item.rb
Parsing app/models/user.rb
Parsing app/models/reply.rb
Parsing app/models/software_project_test_item.rb
Parsing app/models/instruction.rb
Parsing app/models/company_group.rb
Parsing app/models/employee_leave.rb
Parsing app/models/software_project.rb
Parsing app/models/company.rb
Parsing app/helpers/recruitment_helper.rb
Parsing app/helpers/users_helper.rb
Parsing app/helpers/statistics_helper.rb
Parsing app/helpers/software_projects_helper.rb
Parsing app/helpers/companies_helper.rb
Parsing app/helpers/company_groups_helper.rb
Parsing app/helpers/employee_leaves_helper.rb
Parsing app/helpers/application_helper.rb
rake aborted!
undefined method `chr' for nil:NilClass
/home/pma/.rvm/gems/ree-1.8.7-2010.02/gems/metric_fu-2.0.1/lib/generators/stats.rb:29:in `remove_noise'
/home/pma/.rvm/gems/ree-1.8.7-2010.02/gems/metric_fu-2.0.1/lib/generators/saikuro.rb:128:in `find_all'
/home/pma/.rvm/gems/ree-1.8.7-2010.02/gems/metric_fu-2.0.1/lib/generators/stats.rb:29:in `each'
/home/pma/.rvm/gems/ree-1.8.7-2010.02/gems/metric_fu-2.0.1/lib/generators/stats.rb:29:in `find_all'
/home/pma/.rvm/gems/ree-1.8.7-2010.02/gems/metric_fu-2.0.1/lib/generators/stats.rb:29:in `remove_noise'
/home/pma/.rvm/gems/ree-1.8.7-2010.02/gems/metric_fu-2.0.1/lib/generators/stats.rb:11:in `analyze'
/home/pma/.rvm/gems/ree-1.8.7-2010.02/gems/metric_fu-2.0.1/lib/base/generator.rb:126:in `send'
/home/pma/.rvm/gems/ree-1.8.7-2010.02/gems/metric_fu-2.0.1/lib/base/generator.rb:126:in `generate_report'
/home/pma/.rvm/gems/ree-1.8.7-2010.02/gems/metric_fu-2.0.1/lib/base/generator.rb:124:in `each'
/home/pma/.rvm/gems/ree-1.8.7-2010.02/gems/metric_fu-2.0.1/lib/base/generator.rb:124:in `generate_report'
/home/pma/.rvm/gems/ree-1.8.7-2010.02/gems/metric_fu-2.0.1/lib/base/generator.rb:52:in `generate_report'
/home/pma/.rvm/gems/ree-1.8.7-2010.02/gems/metric_fu-2.0.1/lib/base/report.rb:54:in `add'
/home/pma/.rvm/gems/ree-1.8.7-2010.02/gems/metric_fu-2.0.1/lib/../tasks/metric_fu.rake:6
/home/pma/.rvm/gems/ree-1.8.7-2010.02/gems/metric_fu-2.0.1/lib/../tasks/metric_fu.rake:6:in `each'
/home/pma/.rvm/gems/ree-1.8.7-2010.02/gems/metric_fu-2.0.1/lib/../tasks/metric_fu.rake:6
/home/pma/.rvm/gems/ree-1.8.7-2010.02/gems/rake-0.8.7/lib/rake.rb:636:in `call'
/home/pma/.rvm/gems/ree-1.8.7-2010.02/gems/rake-0.8.7/lib/rake.rb:636:in `execute'
/home/pma/.rvm/gems/ree-1.8.7-2010.02/gems/rake-0.8.7/lib/rake.rb:631:in `each'
/home/pma/.rvm/gems/ree-1.8.7-2010.02/gems/rake-0.8.7/lib/rake.rb:631:in `execute'
/home/pma/.rvm/gems/ree-1.8.7-2010.02/gems/rake-0.8.7/lib/rake.rb:597:in `invoke_with_call_chain'
/home/pma/.rvm/rubies/ree-1.8.7-2010.02/lib/ruby/1.8/monitor.rb:242:in `synchronize'
/home/pma/.rvm/gems/ree-1.8.7-2010.02/gems/rake-0.8.7/lib/rake.rb:590:in `invoke_with_call_chain'
/home/pma/.rvm/gems/ree-1.8.7-2010.02/gems/rake-0.8.7/lib/rake.rb:583:in `invoke'
/home/pma/.rvm/gems/ree-1.8.7-2010.02/gems/rake-0.8.7/lib/rake.rb:2051:in `invoke_task'
/home/pma/.rvm/gems/ree-1.8.7-2010.02/gems/rake-0.8.7/lib/rake.rb:2029:in `top_level'
/home/pma/.rvm/gems/ree-1.8.7-2010.02/gems/rake-0.8.7/lib/rake.rb:2029:in `each'
/home/pma/.rvm/gems/ree-1.8.7-2010.02/gems/rake-0.8.7/lib/rake.rb:2029:in `top_level'
/home/pma/.rvm/gems/ree-1.8.7-2010.02/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'
/home/pma/.rvm/gems/ree-1.8.7-2010.02/gems/rake-0.8.7/lib/rake.rb:2023:in `top_level'
/home/pma/.rvm/gems/ree-1.8.7-2010.02/gems/rake-0.8.7/lib/rake.rb:2001:in `run'
/home/pma/.rvm/gems/ree-1.8.7-2010.02/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'
/home/pma/.rvm/gems/ree-1.8.7-2010.02/gems/rake-0.8.7/lib/rake.rb:1998:in `run'
/home/pma/.rvm/gems/ree-1.8.7-2010.02/gems/rake-0.8.7/bin/rake:31
/home/pma/.rvm/gems/ree-1.8.7-2010.02/bin/rake:19:in `load'
/home/pma/.rvm/gems/ree-1.8.7-2010.02/bin/rake:19

5 个答案:

答案 0 :(得分:1)

我认为这是一个rcov问题。如果是的话,Ryan会在railscast中提到它

# Gemfile
gem "simplecov", :require => false, :group => :test

# .metrics
MetricFu::Configuration.run do |config|
  config.metrics -= [:rcov]
end

http://railscasts.com/episodes/252-metrics-metrics-metrics

答案 1 :(得分:1)

最新版本的metric_fu已更改

That line,因此我建议升级到最新的gem:http://rubygems.org/gems/metric_fu/versions/2.1.1

通过这种改变,你至少不会得到与未定义的chr相关的致命错误。

答案 2 :(得分:1)

问题是Ruby 1.9,我已经报告了一个问题,并且几乎立即回复说问题不是metric_fu,而是一些不理解1.9语法的指标

https://github.com/jscruggs/metric_fu/issues/72

答案 3 :(得分:1)

我安装了metrical作为metric_fu的包装器,我正在运行Rails 3.1rc4和Ruby 1.9.2

我收到了一堆错误,这些错误阻止了任何事情的发生,在Googling发现其他人说他们通过删除rcov,reek,flog和flay得到了结果所以我做了同样但我实际上发现了通过添加一个在这个时候它真的只是鞭子导致这个错误是致命的。所以我建议将.metrics文件添加到rails应用程序的根目录中 - 这是我的:

MetricFu::Configuration.run do |config|  
#   config.metrics -= [:rcov]  
#   config.metrics -= [:reek]  
#   config.metrics -= [:flay]  
  config.metrics -= [:flog]
end  

现在效果很好,我几乎完全覆盖了metric_fu。

答案 4 :(得分:0)

我是metric_fu的新维护者,现在应该没有任何问题。请参阅https://github.com/metricfu/metric_fu

中的配置说明

此外,它现在可以从命令行运行。现在需要捆绑它或运行rake或metrical