pytest-level
Mark test cases with a level, then de-select tests with a given level or higher.
When giving a teaching/practice assignment with pre-written tests, either all tests can be given at once (leaving students overwhelmed and unsure which failures should be fixed next), or piece-wise (in individual files -- which becomes a mess for larger projects).
With this plugin, tests for a teaching/practice assignment can be given in
a single file. Students are then told to run with --level 1, fix the few red
tests, then go to --level 2, etc.
Unlike with keywords, all the lower-level tests will still be run:
--level 2 will run both level(1) and level(2) tests.
Installation
In a Python environment (e.g. venv), do:
python -m pip install pytest-level
Usage
Mark tests with a numeric level marker:
@pytest.mark.level(1)
def test_basic_math():
assert 1 + 1 == 2
@pytest.mark.level(2)
def test_intermediate_math():
assert 10 / 2 == 5
@pytest.mark.level(3)
def test_complicated_math():
assert 10 ** 3 == 1000
Then, run pytest with --level:
python -m pytest --level 2
This will deselect tests of a higher level.
Without --level, all tests are run.
Licence
The code is available under a MIT license. May it serve you well.
Release files for pytest-level 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pytest_level-0.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Release files / pytest_level-0.1.3-py3-none-any.whl
| Download URL | pytest_level-0.1.3-py3-none-any.whl |
|---|---|
| Size | 3.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e68badf6cf1ac467f8f4e81ef645e6bd419d9ca29c6d377c824f5d9974083f39
|
|
BLAKE2b-256 checksum How to use checksums |
c33c654ba33381db61f9b5e459915ea5e106da452790f1d23252dcf6c056eed1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.12.2 pkginfo/1.4.2 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.5
|