5 votes

Les tests Testcafe exécutés par des serveurs d'automatisation échouent de manière aléatoire.

Ce comportement est incohérent, j'obtiens des résultats aléatoires avec Jenkins et GitLab-runner. Lorsque j'exécute les tests défaillants sur la même machine de construction, tout se passe bien. (par exemple, les tests qui ont échoué lorsqu'ils ont été exécutés par le serveur d'automatisation, réussissent lorsqu'ils sont exécutés manuellement - à l'aide de la fonction test.seulement )

J'ai essayé la plupart du temps de travailler sans tête avec Firefox et Chrome, mais le même phénomène aléatoire se produit également avec l'interface utilisateur complète.

Tout d'abord, j'ai pensé qu'il y avait un problème de ressources sur la machine de construction à cause des tâches concurrentes, mais j'ai écarté cette possibilité en programmant une construction nocturne. De plus, j'ai même réduit la vitesse à 0.8.

Quelqu'un d'autre a-t-il rencontré ce comportement ? Tout indice sera grandement apprécié.

4voto

thenewjames Points 509

Essayez d'activer le mode de quarantaine et essayer de éviter les erreurs javascript .

Sans un message d'erreur spécifique, il est difficile d'identifier la cause.

2voto

ekostadinov Points 5624

Les tests défaillants constituent un problème sérieux et nécessitent une stratégie d'atténuation. Le non-déterminisme pourrait affecter vos pipelines CICD et bloquer/retarder le développement jusqu'à ce que ces problèmes soient repérés et résolus. À mon avis, même après des tonnes d'efforts pour réduire ces tests problématiques, les tests flaky sont inévitables lorsque les conditions de test atteignent un certain niveau de complexité. L'objectif principal est donc de les gérer de manière appropriée.

Quelques mesures qui pourraient aider :

  • ne réexécute que les tests qui ont échoué
  • considérer des concepts avancés comme la combinaison de xpath et Look&feel
  • refactor pour Modèle hermétique éviter l'état ou les données globales/partagées et se fier à l'ordre aléatoire des tests.
  • approprié Dispositif d'essai stratégie

Ici est plus sur le sujet.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X