fastruby / skunk

A SkunkScore Calculator for Ruby Code -- Find the most complicated code without test coverage!
https://www.fastruby.io/blog/code-quality/intruducing-skunk-stink-score-calculator.html
MIT License
511 stars 29 forks source link

Skunk breaks when is using simplecov 0.21.2 #82

Open bronzdoc opened 3 years ago

bronzdoc commented 3 years ago

When I run skunk app using skunk 0.5.1 and simplecov 0.21.2 is activated I get the following error:

Traceback (most recent call last):
        17: from /Users/bronzdoc/.rbenv/versions/2.7.1/bin/skunk:23:in `<main>'
        16: from /Users/bronzdoc/.rbenv/versions/2.7.1/bin/skunk:23:in `load'
        15: from /Users/bronzdoc/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/skunk-0.5.0/exe/skunk:10:in `<top (required)>'
        14: from /Users/bronzdoc/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/skunk-0.5.0/lib/skunk/cli/application.rb:30:in `execute'
        13: from /Users/bronzdoc/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/skunk-0.5.0/lib/skunk/cli/commands/default.rb:30:in `execute'
        12: from /Users/bronzdoc/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rubycritic-4.5.2/lib/rubycritic/commands/default.rb:24:in `critique'
        11: from /Users/bronzdoc/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rubycritic-4.5.2/lib/rubycritic/analysers_runner.rb:29:in `run'
        10: from /Users/bronzdoc/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rubycritic-4.5.2/lib/rubycritic/analysers_runner.rb:29:in `each'
         9: from /Users/bronzdoc/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rubycritic-4.5.2/lib/rubycritic/analysers_runner.rb:32:in `block in run'
         8: from /Users/bronzdoc/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rubycritic-4.5.2/lib/rubycritic/analysers/coverage.rb:18:in `run'
         7: from /Users/bronzdoc/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rubycritic-4.5.2/lib/rubycritic/core/analysed_modules_collection.rb:32:in `each'
         6: from /Users/bronzdoc/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rubycritic-4.5.2/lib/rubycritic/core/analysed_modules_collection.rb:32:in `each'
         5: from /Users/bronzdoc/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rubycritic-4.5.2/lib/rubycritic/analysers/coverage.rb:19:in `block in run'
         4: from /Users/bronzdoc/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rubycritic-4.5.2/lib/rubycritic/analysers/coverage.rb:36:in `find_coverage_percentage'
         3: from /Users/bronzdoc/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/simplecov-0.21.2/lib/simplecov/source_file.rb:81:in `covered_percent'
         2: from /Users/bronzdoc/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/simplecov-0.21.2/lib/simplecov/source_file.rb:35:in `coverage_statistics'
         1: from /Users/bronzdoc/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/simplecov-0.21.2/lib/simplecov/source_file.rb:337:in `line_coverage_statistics'
/Users/bronzdoc/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/simplecov-0.21.2/lib/simplecov/source_file.rb:245:in `lines_strength': undefined method `map' for nil:NilClass (NoMethodError)

Uninstalling simplecov 0.21.2 and falling back to 0.19.0 makes it work

SkunkScore Total: 507726.42
Modules Analysed: 1266
SkunkScore Average: 401.05
Worst SkunkScore: 9749.88 (app/controllers/user_site/stop_payment_requests_controller.rb)

Generated with Skunk v0.5.1

I will abide by the [code of conduct] (https://github.com/fastruby/skunk/blob/master/CODE_OF_CONDUCT.md)