charlierudolph / cucumber_lint

A linter and formatter for cucumber features
MIT License
8 stars 4 forks source link

Empty scenario #15

Open ben-goldberg opened 8 years ago

ben-goldberg commented 8 years ago

My feature file looks like this:

Feature: Skill show page

  Background:
    Given I am signed in

  Scenario: Displaying projects that use this skill
    #TODO: do this later

When I run bundle exec cucumber_lint, I get this error:

/Users/bgoldberg/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/cucumber_lint-0.1.2/lib/cucumber_lint/linter/feature_empty_lines_linter.rb:31:in `element_end': undefined method `last' for nil:NilClass (NoMethodError)
    from /Users/bgoldberg/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/cucumber_lint-0.1.2/lib/cucumber_lint/linter/feature_empty_lines_linter.rb:86:in `block in lint_elements'
    from /Users/bgoldberg/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/cucumber_lint-0.1.2/lib/cucumber_lint/linter/feature_empty_lines_linter.rb:83:in `each'
    from /Users/bgoldberg/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/cucumber_lint-0.1.2/lib/cucumber_lint/linter/feature_empty_lines_linter.rb:83:in `lint_elements'
    from /Users/bgoldberg/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/cucumber_lint-0.1.2/lib/cucumber_lint/linter/feature_empty_lines_linter.rb:15:in `lint'
    from /Users/bgoldberg/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/cucumber_lint-0.1.2/lib/cucumber_lint/linter/feature_linter.rb:59:in `lint_feature_empty_lines'
    from /Users/bgoldberg/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/cucumber_lint-0.1.2/lib/cucumber_lint/linter/feature_linter.rb:17:in `block in lint'
    from /Users/bgoldberg/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/cucumber_lint-0.1.2/lib/cucumber_lint/linter/feature_linter.rb:16:in `each'
    from /Users/bgoldberg/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/cucumber_lint-0.1.2/lib/cucumber_lint/linter/feature_linter.rb:16:in `lint'
    from /Users/bgoldberg/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/cucumber_lint-0.1.2/lib/cucumber_lint/cli.rb:49:in `lint_feature'
    from /Users/bgoldberg/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/cucumber_lint-0.1.2/lib/cucumber_lint/cli.rb:26:in `block in execute!'
    from /Users/bgoldberg/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/cucumber_lint-0.1.2/lib/cucumber_lint/cli.rb:25:in `each'
    from /Users/bgoldberg/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/cucumber_lint-0.1.2/lib/cucumber_lint/cli.rb:25:in `execute!'
    from /Users/bgoldberg/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/cucumber_lint-0.1.2/lib/cucumber_lint/cli.rb:11:in `execute'
    from /Users/bgoldberg/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/cucumber_lint-0.1.2/bin/cucumber_lint:7:in `<top (required)>'
    from /Users/bgoldberg/.rbenv/versions/2.2.2/bin/cucumber_lint:23:in `load'
    from /Users/bgoldberg/.rbenv/versions/2.2.2/bin/cucumber_lint:23:in `<main>'

When I remove the #TODO I still get the same error.

I'm guessing that the problem is that cucumber_lint is expecting to see steps after a Scenario is defined, but here there are no steps.