views:

24

answers:

1

I just installed cucumber, and I tested it. I got the following error:

teefcomp:cucumber-intro teef$ cucumber features/manage_users.feature
Using the default profile...
F----F

Failing Scenarios:
cucumber features/manage_users.feature:6 # Scenario: User List

1 scenario (1 failed)
4 steps (4 skipped)
0m0.029s

It seems to be suppressing the error. I was expecting something like:

Feature: Manage users
  In order to understand my user base better
  As an administrator
  I want to view a list of users

  Scenario: User List
    Given I have users named George, Mary
      uninitialized constant User (NameError)
      ./features/step_definitions/user_steps.rb:3
      ./features/step_definitions/user_steps.rb:2:in '/^I have users named (.*)$/'
      features/manage_users.feature:7:in 'Given I have users named George, Mary'

Anyone know how to get cucumber to display the errors in full?

--backtrace, --verbose, -b and --trace do not work; I still see F----F and the failing scenario is listed, but I still expect something like description on the "NameError" line. Is this a feature of an older version of cucumber? (I'm using screencasts to start using cucumber.)

+1  A: 

running with the -b flag should give you a full backtrace

cucumber features/manage_users.feature -b

EDIT:

Additionally, you can use the full notation of --backtrace. If you are running via rake, run with the --trace flag

to get full output, you can use the --format flag. I generally use --format pretty to get a line-by-line walk through.

from the --help output.

-f, --format FORMAT              How to format features (Default: pretty). Available formats:
                                   debug       : For developing formatters - prints the calls made to the listeners.
                                   html        : Generates a nice looking HTML report.
                                   json        : Prints the feature as JSON
                                   json_pretty : Prints the feature as pretty JSON
                                   junit       : Generates a report similar to Ant+JUnit.
                                   pdf         : Generates a PDF report. You need to have the
                                                 prawn gem installed. Will pick up logo from
                                                 features/support/logo.png or
                                                 features/support/logo.jpg if present.
                                   pretty      : Prints the feature as is - in colours.
                                   progress    : Prints one character per scenario.
                                   rerun       : Prints failing files with line numbers.
                                   stepdefs    : Prints All step definitions with their locations. Same as
                                                 the usage formatter, except that steps are not printed.
                                   tag_cloud   : Prints a tag cloud of tag usage.
                                   usage       : Prints where step definitions are used.
                                                 The slowest step definitions (with duration) are
                                                 listed first. If --dry-run is used the duration
                                                 is not shown, and step definitions are sorted by
                                                 filename instead.
                                 Use --format rerun --out features.txt to write out failing
                                 features. You can rerun them with cucumber @rerun.txt.
                                 FORMAT can also be the fully qualified class name of
                                 your own custom formatter. If the class isn't loaded,
                                 Cucumber will attempt to require a file with a relative
                                 file name that is the underscore name of the class name.
                                 Example: --format Foo::BarZap -> Cucumber will look for
                                 foo/bar_zap.rb. You can place the file with this relative
                                 path underneath your features/support directory or anywhere
                                 on Ruby's LOAD_PATH, for example in a Ruby gem.
Geoff Lanotte
Hmm, that's still not giving me the full bt. I got the same output...
Teef L
try `--backtrace` and `--verbose`
Geoff Lanotte
Both give me extra information, however the most useful information (the "uninitialized constant User (NameError)" line) still does display.
Teef L
--backtrace gives me this:Using the default profile...F----FFailing Scenarios:cucumber features/manage_users.feature:6 # Scenario: User List1 scenario (1 failed)4 steps (4 skipped)0m0.026s
Teef L
--verbose gives me this:Using the default profile...Code: * features/support/env.rb * features/support/paths.rbFeatures: * features/manage_users.featureParsing feature files took 0m0.003sCode: * features/step_definitions/user_steps.rb * features/step_definitions/web_steps.rbF----FFailing Scenarios:cucumber features/manage_users.feature:6 # Scenario: User List1 scenario (1 failed)4 steps (4 skipped)0m0.026s
Teef L
Sorry those comments aren't formatted. I'm still trying to figure out how to do that.
Teef L
comments won't format, you would need to edit your question to get it looking pretty. -b should give you all that you need, am testing here.
Geoff Lanotte
ah, I see... a failure != an error. you won't get a backtrace on a failure. Use the `--format pretty` or `-f pretty` to get full output.
Geoff Lanotte