Plugin for py.test that associates tests with github issues using a marker.
Project description
Plugin for py.test that integrates with github using markers. Integration allows tests to xfail (or skip) based on the status of linked github issues.
Installation
Install the plugin using pip
pip install pytest-github
Usage
Once installed, the following py.test command-line parameters are available.
py.test \
[--github-cfg=GITHUB_CFG] \
[--github-username=GITHUB_USERNAME] \
[--github-token=GITHUB_TOKEN] \
[--github-completed=GITHUB_COMPLETED] \
[--github-summary]
Next, create a configure file called github.yml that contains your GitHub username and personal api token. A sample file is included below.
github:
username: j.doe
token: XXXXXXXXXXXXX
Marker
The following py.test marker is available:
@pytest.mark.github(*args): GitHub issue integration
The marker can be used to influence the outcome of tests. See the examples below for guidance.
Example: xfail
Often, when a test fails, one might file a GitHub issue to track the resolution of the problem. Alternatively, you could use the built-in xfail marker. This is where pytest-github can be of use. To avoid having to review known failures with each test run, and to avoid always using xfail, consider the github marker to dynamically influence the test outcome based on the state of the GitHub issue.
The following example demonstrates using the github marker to influence the outcome of a known failing test.
@pytest.mark.github('https://github.com/some/open/issues/1')
def test_will_xfail():
assert False
Running this test with py.test will produce the following output:
test.py::test_will_xfail xfail
Example: XPASS
The following example demonstrates a test that succeeds, despite being associated with an open GitHub issue.
@pytest.mark.github('https://github.com/some/open/issues/1')
def test_will_xpass():
assert True
In this example, the XPASS outcome (a.k.a. unexpected pass) is used.
test.py::test_will_xpass XPASS
Example: PASSED
The following example demonstrates a test that succeeds, while it is associated with a closed GitHub issue. When a test associated with a GitHub
@pytest.mark.github('https://github.com/some/closed/issues/2')
def test_will_pass():
assert True
In this example, the PASSED outcome is used.
test.py::test_will_pass PASSED
Example: FAILED
The following example demonstrates a test that fails, while it is associated with a closed GitHub issue.
@pytest.mark.github('https://github.com/some/closed/issues/2')
def test_will_fail():
assert False
In this example, the FAILED outcome is used.
test.py::test_will_fail FAILED
Example: SKIPPED
The following example demonstrates a test that fails, while it is associated with an open GitHub issue.
@pytest.mark.github('https://github.com/some/open/issues/1', skip=True)
def test_will_skip():
assert False
In this example, the SKIPPED outcome is used.
test.py::test_will_skip SKIPPED
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
File details
Details for the file pytest-github-0.0.8.tar.gz
.
File metadata
- Download URL: pytest-github-0.0.8.tar.gz
- Upload date:
- Size: 8.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8b3e1418796e1c68c0e45ca17fa3cb510cfbfcfddc507252f446e230270d19f3 |
|
MD5 | be9e72812b390b2a0b6e1bb937dba369 |
|
BLAKE2b-256 | 942c312171c1193362c71cbeceea57b5d9c1d12e0bd7da42207c3c3d7068fc51 |