Run the tests related to the unstaged files or the current branch (according to Git)
---
Let's say you have the following output from git status
:
$ 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 <file>..." 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)
Running 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"
Using git status
, this plugin allows you to:
- Run only tests from modified test files
- Run tests from modified test files first, followed by all unmodified tests
You can install pytest-picked
via pip from PyPI:
$ 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.