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 |
