
As it will take some time and effort to replace the existing yield tests, add some hopefully helpful information on how to deal with the warnings.
2.3 KiB
Frequently Asked Questions
Note
This section provides a collection of questions with answers that don't otherwise fit in the rest of the documentation. If something is missing, please create an issue.
As this document grows it will gain a more refined structure.
General
Is gabbi only for testing Python-based APIs?
No, you can use gabbi-run <runner>
to test an HTTP service built
in any programming language.
Workarounds
pytest produces warnings about yield tests. Can I make them stop?
Yes, run as py.test --disable-pytest-warnings
to quiet
the warnings. Or use a version of pytest less than 3.0
. For
more details see pytest <pytest_loader>
.
Testing Style
Can I have variables in my YAML file?
Gabbi provides the $ENVIRON
substitution
<state-substitution>
which can operate a bit like variables
that are set elsewhere and then used in the tests defined by the
YAML.
If you find it necessary to have variables within a single YAML file you take advantage of YAML alias nodes list this:
vars:
- &uuid_1 5613AABF-BAED-4BBA-887A-252B2D3543F8
tests:
- name: send a uuid to a post
POST: /resource
request_headers:
content-type: application/json
data:
uuid: *uuid_1
You can alias all sorts of nodes, not just single items. Be aware that the replacement of an alias node happens while the YAML is being loaded, before gabbi does any processing.
How many tests should be put in one YAML file?
For the sake of readability it is best to keep each YAML file relatively short. Since each YAML file represents a sequence of requests, it usually makes sense to create a new file when a test is not dependent on any before it.
It's tempting to put all the tests for any resource or URL in the same file, but this eventually leads to files that are too long and are thus difficult to read.