Cucumber errors suppressed (not displayed fully)

2019-04-25 08:54发布

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.)

2条回答
地球回转人心会变
2楼-- · 2019-04-25 09:37

If your application is a Rails app, you can use the @allow-rescue tag for the scenario-of-interest, then your rails test_log will include more details about where in your application the error was originally raised.

From the command line you can quickly look at the end of the test log with tail -n200 log/test_log.rb (adjust the number of lines to see the portion of interest).

查看更多
手持菜刀,她持情操
3楼-- · 2019-04-25 09:41

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.
查看更多
登录 后发表回答