.. image:: https://github.com/anapaulagomes/pytest-picked/workflows/Tests/badge.svg :target: https://github.com/anapaulagomes/pytest-picked/actions?query=workflow%3ATests :alt: See Test Status on Github Actions
.. image:: https://github.com/anapaulagomes/pytest-picked/workflows/Publish%20to%20Test%20PyPi/badge.svg :target: https://test.pypi.org/project/pytest-picked/ :alt: See Package Status on Test PyPI
.. image:: https://github.com/anapaulagomes/pytest-picked/workflows/Publish%20to%20PyPI/badge.svg :target: https://pypi.org/project/pytest-picked/ :alt: See Package Status on PyPI
.. image:: https://img.shields.io/conda/vn/conda-forge/pytest-picked.svg :target: https://anaconda.org/conda-forge/pytest-picked :alt: Conda forge package
.. image:: https://img.shields.io/pypi/pyversions/pytest-picked.svg :target: https://pypi.org/project/pytest-picked :alt: Supported Python versions
Run the tests related to the unstaged files or the current branch (according to Git)
.. image:: demo.gif :height: 400px :alt: Demo
Let's say you have the following output from
$ git status
On branch master Your branch is ahead of 'origin/master' by 1 commit. (use "git push" to publish your local commits)
Untracked files: (use "git add ..." to include in what will be committed)
api.py tests/api/ tests/test_board.py
nothing added to commit but untracked files present (use "git add" to track)
pytest --picked, the plugin will run all tests that come from this output.
$ pytest --picked
============================= test session starts ============================= platform darwin -- Python 3.6.4, pytest-3.6.0, py-1.5.3, pluggy-0.6.0 rootdir: /Users/ana.gomes/personal-workspace/grandma, inifile: plugins: picked-0.1.0, mock-1.10.0, flask-0.10.0, deadfixtures-2.0.1 collecting 34 items Changed test files... 1. ['tests/test_board.py'] Changed test folders... 1. ['tests/api/'] collected 34 items
tests/test_board.py . [ 50%] tests/api/test_new.py . [100%]
=========================== 2 passed in 0.07 seconds ===========================
All tests will be run from files and folders which are modified but not yet committed. No more copy and paste!
$ pytest --picked
$ pytest --picked=first
$ pytest --picked --mode=branch
$ pytest --picked --mode=unstaged # default
$ pytest --picked --mode=branch --parent-branch=main # if your parent branch differs from "master"
git status, this plugin allows you to:
You can install
pip install pytest-picked
Contributions are very welcome. Tests can be run with
tox_, please ensure
the coverage at least stays the same before you submit a pull request.
Distributed under the terms of the
MIT_ license, "pytest-picked" is free and open source software
If you encounter any problems, please
file an issue_ along with a detailed description.
GNU GPL v3.0: http://www.gnu.org/licenses/gpl-3.0.txt
Apache Software License 2.0: http://www.apache.org/licenses/LICENSE-2.0
file an issue: https://github.com/anapaulagomes/pytest-picked/issues