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