BehaviorDrivenDevelopment - lampmantech/behaving.trytond GitHub Wiki

Behavior-driven development (or BDD) is an agile software development technique that encourages collaboration between developers, QA and non-technical or business participants in a software project.

BDD focuses on obtaining a clear understanding of desired software behavior through discussion with stakeholders. It extends TDD by writing test cases in a natural language that non-programmers can read. Behavior-driven developers use their native language in combination with the ubiquitous language of domain-driven design to describe the purpose and benefit of their code. This allows the developers to focus on why the code should be created, rather than the technical details, and minimizes translation between the technical language in which the code is written and the domain language spoken by the business, users, stakeholders, project management, etc.

The Python package is available at https://pypi.python.org/pypi/behave and complete documentation can be found at http://pythonhosted.org/behave/

Behave Test-Runner

The behave test-runner takes a number of arguments:

positional arguments:

  paths                 Feature directory, file or file location (FILE:LINE).

optional arguments:

  -h, --help            show this help message and exit
  -c, --no-color        Disable the use of ANSI color escapes.
  --color               Use ANSI color escapes. This is the default behaviour.
                        This switch is used to override a configuration file
                        setting.
  -d, --dry-run         Invokes formatters without executing the steps.
  -D NAME=VALUE, --define NAME=VALUE
                        Define user-specific data for the config.userdata
                        dictionary. Example: -D foo=bar to store it in
                        config.userdata["foo"].
  -e PATTERN, --exclude PATTERN
                        Don't run feature files matching regular expression
                        PATTERN.
  -i PATTERN, --include PATTERN
                        Only run feature files matching regular expression
                        PATTERN.
  --no-junit            Don't output JUnit-compatible reports.
  --junit               Output JUnit-compatible reports. When junit is
                        enabled, all stdout and stderr will be redirected and
                        dumped to the junit report, regardless of the '--
                        capture' and '--no-capture' options.
  --junit-directory PATH
                        Directory in which to store JUnit reports.
  -f FORMAT, --format FORMAT
                        Specify a formatter. If none is specified the default
                        formatter is used. Pass '--format help' to get a list
                        of available formatters.
  --steps-catalog       Show a catalog of all available step definitions. SAME
                        AS: --format=steps.catalog --dry-run --no-summary -q
  -k, --no-skipped      Don't print skipped steps (due to tags).
  --show-skipped        Print skipped steps. This is the default behaviour.
                        This switch is used to override a configuration file
                        setting.
  --no-snippets         Don't print snippets for unimplemented steps.
  --snippets            Print snippets for unimplemented steps. This is the
                        default behaviour. This switch is used to override a
                        configuration file setting.
  -m, --no-multiline    Don't print multiline strings and tables under steps.
  --multiline           Print multiline strings and tables under steps. This
                        is the default behaviour. This switch is used to
                        override a configuration file setting.
  -n NAME, --name NAME  Only execute the feature elements which match part of
                        the given name. If this option is given more than
                        once, it will match against all the given names.
  --no-capture          Don't capture stdout (any stdout output will be
                        printed immediately.)
  --capture             Capture stdout (any stdout output will be printed if
                        there is a failure.) This is the default behaviour.
                        This switch is used to override a configuration file
                        setting.
  --no-capture-stderr   Don't capture stderr (any stderr output will be
                        printed immediately.)
  --capture-stderr      Capture stderr (any stderr output will be printed if
                        there is a failure.) This is the default behaviour.
                        This switch is used to override a configuration file
                        setting.
  --no-logcapture       Don't capture logging. Logging configuration will be
                        left intact.
  --logcapture          Capture logging. All logging during a step will be
                        captured and displayed in the event of a failure. This
                        is the default behaviour. This switch is used to
                        override a configuration file setting.
  --logging-level LOGGING_LEVEL
                        Specify a level to capture logging at. The default is
                        INFO - capturing everything.
  --logging-format LOGGING_FORMAT
                        Specify custom format to print statements. Uses the
                        same format as used by standard logging handlers. The
                        default is '%(levelname)s:%(name)s:%(message)s'.
  --logging-datefmt LOGGING_DATEFMT
                        Specify custom date/time format to print statements.
                        Uses the same format as used by standard logging
                        handlers.
  --logging-filter LOGGING_FILTER
                        Specify which statements to filter in/out. By default,
                        everything is captured. If the output is too verbose,
                        use this option to filter out needless output.
                        Example: --logging-filter=foo will capture statements
                        issued ONLY to foo or foo.what.ever.sub but not foobar
                        or other logger. Specify multiple loggers with comma:
                        filter=foo,bar,baz. If any logger name is prefixed
                        with a minus, eg filter=-foo, it will be excluded
                        rather than included.
  --logging-clear-handlers
                        Clear all other logging handlers.
  --no-summary          Don't display the summary at the end of the run.
  --summary             Display the summary at the end of the run.
  -o FILE, --outfile FILE
                        Write to specified file instead of stdout.
  -q, --quiet           Alias for --no-snippets --no-source.
  -s, --no-source       Don't print the file and line of the step definition
                        with the steps.
  --show-source         Print the file and line of the step definition with
                        the steps. This is the default behaviour. This switch
                        is used to override a configuration file setting.
  --stage STAGE         Defines the current test stage. The test stage name is
                        used as name prefix for the environment file and the
                        steps directory (instead of default path names).
  --stop                Stop running tests at the first failure.
  -t TAG_EXPRESSION, --tags TAG_EXPRESSION
                        Only execute features or scenarios with tags matching
                        TAG_EXPRESSION. Pass '--tags-help' for more
                        information.
  -T, --no-timings      Don't print the time taken for each step.
  --show-timings        Print the time taken, in seconds, of each step after
                        the step has completed. This is the default behaviour.
                        This switch is used to override a configuration file
                        setting.
  -v, --verbose         Show the files and features loaded.
  -w, --wip             Only run scenarios tagged with "wip". Additionally:
                        use the "plain" formatter, do not capture stdout or
                        logging output and stop at the first failure.
  -x, --expand          Expand scenario outline tables in output.
  --lang LANG           Use keywords for a language other than English.
  --lang-list           List the languages available for --lang.
  --lang-help LANG      List the translations accepted for one language.
  --tags-help           Show help for tag expressions.
  --version             Show version.
⚠️ **GitHub.com Fallback** ⚠️