Que fait tests-de-mutation ?
Configure des campagnes de tests de mutation avec mewt ou muton — cible les cibles, ajuste les délais d'attente et optimise les exécutions longues. Utilisez cette compétence lorsque l'utilisateur mentionne mewt, muton, tests de mutation, ou souhaite configurer ou optimiser une campagne de tests de mutation.
Fonctionnalités
- Configuration des cibles : Définissez les fichiers ou répertoires à muter (par exemple,
src/lib.rsousrc/). - Ajustement des délais d'attente : Évitez les blocages en réglant le temps maximal par mutation.
- Optimisation des exécutions longues : Stratégies pour paralléliser ou filtrer les mutations inutiles.
- Intégration CI/CD : Exemples de pipelines pour GitHub Actions, GitLab CI, etc.
Plateformes supportées
| Outil | Langage | Commande |
|---|---|---|
| mewt | Rust | cargo mewt |
| muton | Python | muton run |
Utilisation rapide
# Pour un projet Rust avec mewt
cargo install mewt
cargo mewt --targets src/ --timeout 30
# Pour un projet Python avec muton
pip install muton
muton run --targets src/ --timeout 60
Conseils d'optimisation
- Limitez la portée au début : testez sur un seul dossier avant de lancer sur tout le projet.
- Augmentez le délai d'attente pour les mutations complexes (ex:
--timeout 120). - Utilisez la parallélisation si l'outil le supporte (ex:
--jobs 4). - Filtrez les mutations triviales (ex: modifications de commentaires) pour réduire le bruit.
Exemple de configuration avancée
# .mewt/config.yml (pour mewt)
targets:
- "src/lib.rs"
- "src/utils/*"
timeout: 60
parallel: true
# muton.config.json (pour muton)
{
"targets": ["src/", "tests/"],
"timeout": 120,
"exclude": ["**/__pycache__/**"]
}
Ressources
Note : Les tests de mutation sont exigeants en ressources. Commencez par des campagnes limitées et ajustez progressivement.