Метрика-фу в моем приложении Rails 3 не запускается - PullRequest
9 голосов
/ 01 декабря 2010

Установил metric-fu в приложении Rails 3, поместив его в мой Gemfile. Но когда я запускаю грабли, это не удается. Ошибка ниже, есть идеи, как решить это кому-нибудь?

$ 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 ]

1 голос
/ 22 июля 2011

Я установил 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.

1 голос
/ 11 мая 2011

Эта строка изменилась в последней версии metric_fu, поэтому я рекомендую обновить ее до последней версии: http://rubygems.org/gems/metric_fu/versions/2.1.1

С этим изменением вы по крайней мере не получите фатальную ошибку, связанную с неопределенностью chr.

1 голос
/ 20 июля 2011

Проблема в Ruby 1.9, я сообщил о проблеме и почти сразу же получил ответ, что проблема не в metric_fu, а в некоторых метриках, которые не понимают синтаксис 1.9

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

1 голос
/ 02 марта 2011

Я думаю, это проблема с RCOV. Райан упоминает это в 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

0 голосов
/ 12 февраля 2013

Я новый сопровождающий metric_fu, и теперь он должен работать без проблем. См. Инструкции по конфигурации на https://github.com/metricfu/metric_fu

Кроме того, теперь он работает из командной строки. Теперь нужно связать его или запустить грабли или метрические

...