doc-locale/fr-fr/ci/testing/fail_fast_testing.md
{{< details >}}
{{< /details >}}
Les tests fail fast exécutent les specs les plus pertinentes par rapport aux modifications de votre merge request avant que le reste de la suite ne s'exécute. Si ces specs échouent, le pipeline s'arrête immédiatement pour économiser du temps et des ressources de calcul.
Pour les projets Ruby on Rails utilisant RSpec, le template CI/CD Verify/FailFast sélectionne et exécute uniquement les specs pertinentes. Il utilise le gem test_file_finder (tff), qui associe les fichiers modifiés à leurs fichiers de specs correspondants.
Par défaut, le template s'exécute dans l'étape .pre, avant toutes les autres étapes du pipeline.
Configurez les tests fail fast pour obtenir des retours plus rapides sur les modifications de votre merge request avant que votre suite de tests complète ne s'exécute.
Prérequis :
Pour configurer les tests fail fast :
Ajoutez un job RSpec pour exécuter votre suite complète sur les pipelines de merge request :
rspec-complete:
stage: test
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
script:
- bundle install
- bundle exec rspec
Incluez le template Verify/FailFast dans votre configuration CI/CD :
include:
- template: Verify/FailFast.gitlab-ci.yml
Facultatif. Pour utiliser une image Docker différente, définissez l'image sur le job rspec-rails-modified-path-specs dans votre fichier de configuration CI/CD :
include:
- template: Verify/FailFast.gitlab-ci.yml
rspec-rails-modified-path-specs:
image: custom-docker-image-with-ruby
Les exemples suivants supposent une suite de 100 specs par modèle sur 10 modèles (1 000 specs au total).
| Fichiers modifiés | rspec-rails-modified-path-specs | rspec-complete |
|---|---|---|
| Aucun fichier Ruby | Ne s'exécute pas | Exécute les 1 000 specs |
app/models/example.rb (toutes les specs réussissent) | Exécute 100 specs pour example.rb | Exécute les 1 000 specs |
app/models/example.rb (au moins une spec échoue) | Exécute 100 specs pour example.rb | Ignoré |