YAML RunnerΒΆ
If there is a running web service that needs to be tested and
creating a test loader with build_tests()
is
either inconvenient or overkill it is possible to run YAML test
files directly from the command line with the console-script
gabbi-run
. It accepts YAML on stdin
or as multiple file
arguments, and generates and runs tests and outputs a summary of
the results.
The provided YAML may not use custom Fixtures but otherwise uses the default Test Format. Target Host information is either expressed directly in the YAML file or provided on the command line:
gabbi-run [host[:port]] < /my/test.yaml
or:
gabbi-run http://host:port < /my/test.yaml
To test with one or more files the following command syntax may be used:
gabbi-run http://host:port -- /my/test.yaml /my/other.yaml
Note
The filename arguments must come after a --
and all
other arguments (host, port, prefix, failfast) must come
before the --
.
Note
If files are provided, test output will use names including the name of the file. If any single file includes an error, the name of the file will be included in a summary of failed files at the end of the test report.
To facilitate using the same tests against the same application mounted
in different locations in a WSGI server, a prefix
may be provided
as a second argument:
gabbi-run host[:port] [prefix] < /my/test.yaml
or in the target URL:
gabbi-run http://host:port/prefix < /my/test.yaml
The value of prefix will be prepended to the path portion of URLs that are not fully qualified.
Anywhere host is used, if it is a raw IPV6 address it should be
wrapped in [
and ]
.
If https
is used in the target, then the tests in the provided
YAML will default to ssl: True
.
Use -k
or --insecure
to not validate certificates when making
https
connections.
If a -x
or --failfast
argument is provided then gabbi-run
will
exit after the first test failure.
Use -v
or --verbose
with a value of all
, headers
or body
to turn on verbosity for all tests being run.
Use -q
or --quiet
to silence test runner output.
Use -r
or --response-handler
to load a custom response or content
handler for use with tests.
Use -l
to load response handlers relative to the current working directory.
For example, to load a handler named HTMLHandler
from the handlers.html
module relative to the current directory:
gabbi-run -l -r handlers.html:HTMLHandler http://example.com < my.yaml