Library pytest-spec is a pytest plugin to display test execution output like a SPECIFICATION.
Project description
pytest-spec
Library pytest-spec is a pytest plugin to display test execution output like a SPECIFICATION.
Available features
- Format output to look like specification.
- Group tests by classes and files
- Failed, passed and skipped are marked and colored.
- Remove test_ and underscores for every test.
- It is possible to use docstring summary instead of test name.
- Supports function based, class based test.
- Supports describe like tests.
Output example
Configuration
spec_header_format
You can configure the format of the test headers by specifying a format string in your ini-file:
; since pytest 4.6.x
[pytest]
spec_header_format = {module_path}:
; legacy pytest
[tool:pytest]
spec_header_format = {module_path}:
or in your pyproject.toml file:
[tool.pytest.ini_options]
spec_header_format = "{module_path}:"
In addition to the {path}
and {class_name}
replacement fields, there is also {test_case}
that holds a more human readable name.
spec_test_format
You can configure the format of the test results by specifying a format string in your ini-file:
3 variables are available:
- result - place for indicator
- name - name of test
- docstring_summary - first line from test docstring if available
; since pytest 4.6.x
[pytest]
spec_test_format = {result} {name}
; legacy pytest
[tool:pytest]
spec_test_format = {result} {name}
or
; since pytest 4.6.x
[pytest]
spec_test_format = {result} {docstring_summary}
; legacy pytest
[tool:pytest]
spec_test_format = {result} {docstring_summary}
In second example where docstring is not available the name will be added to spec output.
Similar configuration could be done in your pyproject.toml file:
[tool.pytest.ini_options]
spec_test_format = "{result} {name}"
or
[tool.pytest.ini_options]
spec_test_format = "{result} {docstring_summary}"
spec_success_indicator
You can configure the indicator displayed when test passed.
ini-file
; since pytest 4.6.x
[pytest]
spec_success_indicator = ✓
; legacy pytest
[tool:pytest]
spec_success_indicator = ✓
or pyproject.toml
[tool.pytest.ini_options]
spec_success_indicator = "✓"
spec_failure_indicator
You can configure the indicator displated when test failed.
ini-file
; since pytest 4.6.x
[pytest]
spec_failure_indicator = ✗
; legacy pytest
[tool:pytest]
spec_failure_indicator = ✗
or pyproject.toml
[tool.pytest.ini_options]
spec_failure_indicator = "✗"
spec_skipped_indicator
You can configure the indicator displated when test is skipped.
ini-file
; since pytest 4.6.x
[pytest]
spec_skipped_indicator = »
; legacy pytest
[tool:pytest]
spec_skipped_indicator = »
or pyproject.toml
[tool.pytest.ini_options]
spec_skipped_indicator = "»"
spec_ignore
Comma-separated settings to ignore/hide some tests or output from from plugins like FLAKE8 or ISORT. Any test which contain provided string will be ignored in output spec.
ini-file
; since pytest 4.6.x
[pytest]
spec_ignore = FLAKE8
; legacy pytest
[tool:pytest]
spec_ignore = FLAKE8
or pyproject.toml
[tool.pytest.ini_options]
spec_ignore = "FLAKE8"
spec_indent
ini-file
; since pytest 4.6.x
[pytest]
spec_indent = " "
; legacy pytest
[tool:pytest]
spec_indent = " "
or pyproject.toml
[tool.pytest.ini_options]
spec_indent = " "
Continuous Integration
Download
All versions of library are available on official pypi server.
Install
From pypi.org
pip install pytest-spec
From source
cd pytest-spec
pip install -e .
From source for testing
cd pytest-spec
pip install -e ".[test]"
From source for build or deployment
cd pytest-spec
pip install -e ".[deploy]"
Contribution
Please feel free to present your idea by code example (pull request) or reported issues.
Contributors
- @0x64746b
- @lucasmarshall
- @amcgregor
- @jhermann
- @frenzymadness
- @chrischambers
- @maxalbert
- @jayvdb
- @hugovk
- @b0g3r
- @paxcodes
- @s-t-e-v-e-n-k
License
pytest-spec - pytest plugin to display test execution output like a SPECIFICATION.
Copyright (C) 2014-2024 Pawel Chomicki
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for pytest_spec-4.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5d85ed29d9240722dfe778bed80022b917154c8200020864a61bfa65f138f70a |
|
MD5 | 041ead9c58e4db930b3de37a910e1edc |
|
BLAKE2b-256 | e1625855ce49868dde9a7c1cce1adfa12152c5d249a702a51a63af0510b75a08 |