petercorke / petercorke/machinevision-toolbox-python
roslibpy (ros extra) never installed in CI, so TestRosTopicValidation is entirely skipped
Nessuno ha ancora preso questa issue.
- Lingua principale
- Python
- Stelle
- 219
- Fork
- 30
- Merge medio
- 12g 23h
- PR unite (30g)
- 5
Descrizione
Found 2026-08-14 while wiring open3d test coverage into CI for #46.
`pyproject.toml`'s `ros` extra (`rosbags`, `roslibpy`, `websockets`) is never installed
anywhere in `.github/workflows/ci.yml` — only `pip install .[dev,tool]` runs. As a result,
the entire `TestRosTopicValidation` class in `tests/test_ros.py` (class-level
`@pytest.mark.skipif(not _roslibpy_importable, reason="roslibpy not installed")`) is silently
skipped on every CI run, including the three open3d-gated pointcloud-publish tests inside it
(`test_publish_pointcloud_uncoloured`, `test_publish_pointcloud_coloured`,
`test_publish_pointcloud_uses_explicit_timestamp`) — installing open3d alone does not unlock
these, since the class-level roslibpy gate short-circuits first.
Verified locally: with `roslibpy` not installed, `pytest tests/test_ros.py -k pointcloud -rs`
reports `SKIPPED ... roslibpy not installed` for all three, regardless of open3d's install
state.
Other `_rosbags_importable`-gated tests in the same file (`TestRosBagsIO` etc.) are presumably
similarly always-skipped, since `rosbags` isn't installed either — not independently verified
here, worth checking as part of the fix.
Fix
Add a CI leg (or a conditional install step, similar to the open3d pattern from #46/#78) that
installs `.[ros]` on at least one matrix leg, so the `ros`-extra-gated tests actually run
somewhere rather than being permanently invisible to CI.
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia da .github/workflows/ci.yml e pyproject.toml per vedere come vengono installati gli extras esistenti e i leg della matrice. Esegui pytest tests/test_ros.py -k pointcloud -rs, quindi verifica che il leg ROS-extra esegua i test vincolati a roslibpy e rosbags invece di saltarli; il job CI dovrebbe completarsi correttamente con l’extra installato.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- github-actions, python
- Ambito
- ci-cd, testing-qa
- Tipo di issue
- Bug
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Stato di attività
- Tranquilla
- Chiarezza
- Specificata chiaramente
- Idoneità per principianti
- 78/100