I''m apologize for my English, before.
I''m doing a post graduation thesis about BDD, an my initial idea is to
compare a ruby program built by TDD and after by BDD. In these cases,
the both projects have identical code, excepts the tests that were made
by Test::Unit and Rspec respectively. So I''m using some code metrics
like rcov, flay, flog and etc. for compare the generated tests.
I made the same for a rails project. I built a blog with three models
(user, post and comment) using TDD approach using Test::Unit. After I
did the same project using the BDD approach for build the same code but
using rspec instead Test::Unit framework. In both projects the total
number of tests are the same and the code generated are identical. So I
tried to use metric-fu for compare these rails projects and the results
left me frustrated.
The flog and roodi''s metrics showing noting!
I need to measure files user.rb, post.rb, comment.rb
in app/models and user_test.rb, post_test.rb, comment_test.rb in
test/unit.
My metric-fu.rake is:
begin
require ''metric_fu''
MetricFu::Configuration.run do |config|
#define which metrics you want to use
config.metrics = [:churn, :saikuro, :stats, :flog, :flay,
:reek, :roodi, :rcov]
config.graphs = []
config.flay = { :dirs_to_flay => [''app/models'',
''test/unit'',
''lib''] }
config.flog = { :dirs_to_flog => [''app/models'',
''test/unit'',
''lib''] }
config.reek = { :dirs_to_reek => [''app/models'',
''test/unit'',
''lib''] }
config.roodi = { :dirs_to_roodi =>
[''app/models'',''test/unit'',
''lib''] }
config.saikuro = { :output_directory =>
''scratch_directory/saikuro'',
:input_directory =>
[''app/models'',
''test/unit'', ''lib''],
:cyclo => "",
:filter_cyclo => "0",
:warn_cyclo => "5",
:error_cyclo => "7",
:formater => "text"}
config.churn = { :start_date => "1 year ago",
:minimum_churn_count => 10}
config.rcov[:rcov_opts] << "-Itest"
end
rescue LoadError
end
and for rails rspec project
begin
require ''metric_fu''
MetricFu::Configuration.run do |config|
#define which metrics you want to use
config.metrics = [:churn, :saikuro, :stats, :flog, :flay,
:reek, :roodi, :rcov]
config.graphs = []
config.flay = { :dirs_to_flay => [''app/models'',
''spec/models'', ''lib''] }
config.flog = { :dirs_to_flog => [''app/models'',
''spec/models'', ''lib''] }
config.reek = { :dirs_to_reek => [''app/models'',
''spec/models'', ''lib''] }
config.roodi = { :dirs_to_roodi =>
[''app/models'',''spec/models'',
''lib''] }
config.saikuro = { :output_directory =>
''scratch_directory/saikuro'',
:input_directory =>
[''app/models'',
''spec/models'', ''lib''],
:cyclo => "",
:filter_cyclo => "0",
:warn_cyclo => "5",
:error_cyclo => "7",
:formater => "text"}
config.churn = { :start_date => "1 year ago",
:minimum_churn_count => 10}
config.rcov[:rcov_opts] << "-Itest" #
doens''t work too.
end
rescue LoadError
end
I need to improve this rake file for show more information (and to
include flog and roodi measures).
For me rcov doesn''t work with this default configuration:
config.rcov = { :test_files => [''test/**/*_test.rb'',
''spec/**/*_spec.rb''],
:rcov_opts => ["--sort coverage",
"--no-html",
"--text-coverage",
"--no-color",
"--profile",
"--rails",
"--exclude
/gems/,/Library/,spec"]}
Why?
And when I execute rake metrics :all these errors happen:
(in /home/bruno/workRails/blog_spec)
* master
/usr/local/lib/ruby/gems/1.8/gems/flog-2.1.2/bin/flog:11: undefined
method `flog_files'' for #<Flog:0xb7903708> (NoMethodError)
from /usr/local/bin/flog:19:in `load''
from /usr/local/bin/flog:19
No file to analyze was found. All the files loaded by rcov matched one
of the
following expressions, and were thus ignored:
[/\A\/usr\/local\/lib/,
/\btc_[^.]*.rb/,
/_test\.rb\z/,
… and blablabla
Can anyone help me with these questions?
Thank''s so much, Bruno.
--
Posted via http://www.ruby-forum.com/.