# Coverage.py warning: No data was collected. (no-data-collected)
WARNING: Failed to generate report: No data to report.

- **ID:** `python/pytest-coverage-subprocess-not-measured`
- **Domain:** python
- **Category:** config_error
- **Verification:** ai_generated
- **Fix Rate:** 80%

## Root Cause

Tests spawn subprocesses (e.g., via subprocess.run or multiprocessing) and coverage is not propagated to them, so only the parent process is measured and often has no executed lines.

## Version Compatibility

| Version | Status | Introduced | Deprecated |
|---------|--------|------------|------------|
| 7.4.x | active | — | — |
| 7.5.x | active | — | — |

## Workarounds

1. **** (90% success)
   ```
   # .coveragerc
[run]
concurrency = multiprocessing
parallel = true

# conftest.py
import coverage
coverage.process_startup()

# env
COVERAGE_PROCESS_START=.coveragerc
   ```
2. **** (88% success)
   ```
   coverage run --concurrency=multiprocessing -m pytest tests/
coverage combine
coverage report --fail-under=85
   ```

## Dead Ends

- **** — If the tests themselves only spawn subprocesses, the parent process executes no application code and coverage stays empty. (85% fail)
- **** — Only affects where data is written, not whether subprocesses are instrumented; the child still does not start coverage. (80% fail)
