diff options
-rw-r--r-- | docs/cli_commands.md | 17 | ||||
-rw-r--r-- | lib/python/qmk/cli/pytest.py | 3 |
2 files changed, 18 insertions, 2 deletions
diff --git a/docs/cli_commands.md b/docs/cli_commands.md index 520da06c4..01241b00d 100644 --- a/docs/cli_commands.md +++ b/docs/cli_commands.md | |||
@@ -481,5 +481,20 @@ This command runs the python test suite. If you make changes to python code you | |||
481 | **Usage**: | 481 | **Usage**: |
482 | 482 | ||
483 | ``` | 483 | ``` |
484 | qmk pytest | 484 | qmk pytest [-t TEST] |
485 | ``` | 485 | ``` |
486 | |||
487 | **Examples**: | ||
488 | |||
489 | Run entire test suite: | ||
490 | |||
491 | qmk pytest | ||
492 | |||
493 | Run test group: | ||
494 | |||
495 | qmk pytest -t qmk.tests.test_cli_commands | ||
496 | |||
497 | Run single test: | ||
498 | |||
499 | qmk pytest -t qmk.tests.test_cli_commands.test_c2json | ||
500 | qmk pytest -t qmk.tests.test_qmk_path | ||
diff --git a/lib/python/qmk/cli/pytest.py b/lib/python/qmk/cli/pytest.py index a7f01a872..2e4a0a9f0 100644 --- a/lib/python/qmk/cli/pytest.py +++ b/lib/python/qmk/cli/pytest.py | |||
@@ -7,11 +7,12 @@ from subprocess import DEVNULL | |||
7 | from milc import cli | 7 | from milc import cli |
8 | 8 | ||
9 | 9 | ||
10 | @cli.argument('-t', '--test', arg_only=True, action='append', default=[], help="Mapped to nose2 'testNames' positional argument - https://docs.nose2.io/en/latest/usage.html#specifying-tests-to-run") | ||
10 | @cli.subcommand('QMK Python Unit Tests', hidden=False if cli.config.user.developer else True) | 11 | @cli.subcommand('QMK Python Unit Tests', hidden=False if cli.config.user.developer else True) |
11 | def pytest(cli): | 12 | def pytest(cli): |
12 | """Run several linting/testing commands. | 13 | """Run several linting/testing commands. |
13 | """ | 14 | """ |
14 | nose2 = cli.run(['nose2', '-v'], capture_output=False, stdin=DEVNULL) | 15 | nose2 = cli.run(['nose2', '-v', '-t' 'lib/python', *cli.args.test], capture_output=False, stdin=DEVNULL) |
15 | flake8 = cli.run(['flake8', 'lib/python'], capture_output=False, stdin=DEVNULL) | 16 | flake8 = cli.run(['flake8', 'lib/python'], capture_output=False, stdin=DEVNULL) |
16 | 17 | ||
17 | return flake8.returncode | nose2.returncode | 18 | return flake8.returncode | nose2.returncode |