A pytest plugin to instrument tests and write the resulting records to file
json file with one record for each setup/call/teardown of each test containing:
- session id and record id (UUIDs generated by plugin)
- node_id (pytest's nodeid)
- when (setup, call or teardown)
- outcome (passed, failed or skipped)
- start, stop and duration
- labels (array) and tags (object) via @pytest.mark.instrument() decorator
hooks to edit labels, tags and fixtures before the record is written to file
- Python 3.6 or higher
- pytest 5.1.0 or higher
$ pip install pytest-instrument
Run your tests with:
$ pytest --instrument
An ./artifacts directory will be created if it doesn't exist yet. For each pytest session one .json file will be written to that directory.
Labels and tags
You can add labels and tags to tests with the plugin's mark decorator:
All args, such as "a_label", are put in the json array labels. All kwargs, such as my_tag="tagged", are put in the json object tags.
- pytest_instrument_labels: edit list of labels after they've been parsed by the plugin
- pytest_instrument_tags: edit dictionary of tags after they've been parsed by the plugin
- pytest_instrument_fixtures: edit list of fixtures after they've been parsed by the plugin
Consult the changelog for fixes and enhancements of each version.
Please use the GitHub issue tracker to submit bugs or request features.
Distributed under the terms of the MIT license, "pytest-instrument" is free and open source software