Context
Borrowed from IBM/mcp-context-forge which uses markers like @pytest.mark.slow, @pytest.mark.e2e, @pytest.mark.integration.
FastStack has 387 tests but no way to run subsets by category. All tests run every time (~5s now, but will grow).
What to do
- Define markers in
pyproject.toml: unit, integration, e2e, slow
- Tag existing tests:
tests/test_core/ → unit
tests/test_templates/ → unit
tests/test_cli/ → integration (they scaffold real projects in tmp dirs)
- Add Makefile targets:
make test-unit → pytest -m unit
make test-integration → pytest -m integration
make test-fast → pytest -m "not slow"
- Suppress
PytestUnknownMarkWarning
Acceptance criteria
make test-unit runs only core + template tests
make test-integration runs only CLI tests
make test still runs everything
Context
Borrowed from IBM/mcp-context-forge which uses markers like
@pytest.mark.slow,@pytest.mark.e2e,@pytest.mark.integration.FastStack has 387 tests but no way to run subsets by category. All tests run every time (~5s now, but will grow).
What to do
pyproject.toml:unit,integration,e2e,slowtests/test_core/→unittests/test_templates/→unittests/test_cli/→integration(they scaffold real projects in tmp dirs)make test-unit→pytest -m unitmake test-integration→pytest -m integrationmake test-fast→pytest -m "not slow"PytestUnknownMarkWarningAcceptance criteria
make test-unitruns only core + template testsmake test-integrationruns only CLI testsmake teststill runs everything