Conversation
Add --runintegration pytest option so that tests marked with the integration marker are skipped by default, consistent with the existing --runslow and --example behavior. Update the test-integration Makefile target to pass this flag. Remove the test-coverage target and merge its coverage- reporting behavior directly into the test target, making coverage collection the default for all test runs. Update all documentation (CONTRIBUTING.md, Makefile help text, copilot-instructions.md, testing_protocol, and auto_testing instructions) to reflect these changes.
There was a problem hiding this comment.
Pull request overview
This PR refines the developer testing workflow by making integration tests opt-in via a new pytest flag and by making coverage collection the default behavior of make test.
Changes:
- Add a
--runintegrationpytest option and skip@pytest.mark.integrationtests unless explicitly enabled. - Remove the
test-coverageMakefile target and fold coverage reporting into the defaulttesttarget. - Update CONTRIBUTING documentation to reflect the updated targets/workflows.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
tests/conftest.py |
Adds --runintegration and default-skipping behavior for integration-marked tests. |
Makefile |
Makes make test generate coverage by default and updates test-integration to opt in to integration tests. |
CONTRIBUTING.md |
Updates workflow docs/diagrams to include test-all and reflect coverage-default test runs. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| test-ci --> test-example["make test-example"] | ||
|
|
||
| %% Test-all dependencies | ||
| test-all --> test["make test\n(+coverage)"] |
There was a problem hiding this comment.
Mermaid labels generally don’t interpret escaped \n sequences; they tend to render literally. Since the rest of this file uses <br/> for line breaks in Mermaid node labels, consider replacing \n in this label with <br/> to ensure consistent rendering in the docs.
| test-all --> test["make test\n(+coverage)"] | |
| test-all --> test["make test<br/>(+coverage)"] |
| test: ## Run tests in parallel with coverage reporting | ||
| $(RM) $(COVERAGE_JSON) | ||
| $(RM) -r $(HTMLCOV_DIR) | ||
| $(PYTEST_PARALLEL) $(PYTEST_DURATIONS) $(PYTEST_COV_FLAGS) |
There was a problem hiding this comment.
In the test target, the coverage JSON filename later echoed to the user is hard-coded as coverage.json, but the report is generated at $(COVERAGE_JSON) (which can include COVERAGE_ID). Please update the echoed filename to use the variable so it matches the actual artifact name.
Description
This PR does some improvement of the Makefile to streamline the development workflow.
Add --runintegration pytest option so that tests marked with the integration marker are skipped by default, consistent with the existing --runslow and --example behavior. Update the test-integration Makefile target to pass this flag.
Remove the test-coverage target and merge its coverage- reporting behavior directly into the test target, making coverage collection the default for all test runs.
Update all documentation (CONTRIBUTING.md, Makefile help text, copilot-instructions.md, testing_protocol, and auto_testing instructions) to reflect these changes.
Type of change
Checklist:
The following checklist will make sure that you are following the code style and
guidelines of the project as described in the
contributing page.
bash pre-commit-checkand fixed any issues