i4h Catheter Navigation - Tests de fumée
Objectif
Exécuter des tests unitaires de fumée CPU uniquement pour les composants fluorosim et les parseurs de point d'entrée, sûrs pour CI sans GPU. Exerce les imports, le prétraitement CT->mu, la validité du parser et les vérifications d'import de viewport conditionnel.
Code de base
ROOT="${I4H_WORKFLOWS:-$(git rev-parse --show-toplevel 2>/dev/null)}"
if [ ! -d "$ROOT/workflows/catheter_navigation" ]; then
ROOT="${I4H_WORKFLOWS:-$HOME/i4h-workflows}"
[ -d "$ROOT/workflows/catheter_navigation" ] || git clone https://github.com/isaac-for-healthcare/i4h-workflows "$ROOT"
fi
export I4H_WORKFLOWS="$ROOT"; cd "$ROOT"
Exécution
Étape 1 - exécuter les tests
REPO_ROOT="${I4H_WORKFLOWS:-$(git rev-parse --show-toplevel 2>/dev/null)}"; [ -d "$REPO_ROOT/workflows/catheter_navigation" ] || REPO_ROOT="$HOME/i4h-workflows"
WF_ROOT="${REPO_ROOT}/workflows/catheter_navigation"
RUN_DIR="${WF_ROOT}/runs/smoke_$(date +%Y%m%d_%H%M%S)"
mkdir -p "${RUN_DIR}/logs"
ln -sfn "${RUN_DIR}" "${WF_ROOT}/runs/.latest"
python3 -m unittest workflows/catheter_navigation/tests/test_fluorosim_smoke.py \
2>&1 | tee "${RUN_DIR}/logs/smoke.log"
Résultat attendu
Ran N tests in ...s
OK
Les lignes d'erreur du parser sur stderr des tests CLI négatifs sont attendues - ce ne sont pas des échecs.
Vérification
grep -E "Ran [0-9]+ tests" "${RUN_DIR}/logs/smoke.log"
grep "OK" "${RUN_DIR}/logs/smoke.log"
Prérequis
- Python 3 avec les dépendances du workflow installées (par exemple via
workflows/catheter_navigation/requirements.txt). - Aucun GPU requis.
Limitations
- N'exerce pas le rendu GPU Slang ni le viewport interactif.
- Pour la validation GPU, utilisez [[i4h-catheter-navigation-render-drr]].
Dépannage
- Erreur : échecs d'import - Correction : exécutez [[i4h-catheter-navigation-setup]] et vérifiez que le venv actif a les dépendances du workflow de cathéter installées.
- Erreur : nombre de tests inattendu - Correction : inspectez le journal ; cela peut changer quand la couverture de fumée est ajoutée/supprimée sur une branche.
Réponse finale
Signalez succès/échec, nombre de tests et chemin du journal. Si réussi, notez que les étapes GPU nécessitent toujours une vérification séparée.