2016-06-01 2 views
3

J'ai un projet Maven avec les résultats suivants attendus lors de tests sont exécutés (mvn test):Comportement non-déterministe de tests sautées dans des essais parallèles sur Maven Surefire

Tests run: 543, Failures: 0, Errors: 0, Skipped: 8 

J'explorais au profit de l'exécution de ces essais en parallèle pour voir si je pourrais réduire le temps total écoulé du processus de construction.

Après avoir ajouté le paramètre suivant SureFire:

<parallel>methods</parallel> 
<threadCount>5</threadCount> 
<perCoreThreadCount>true</perCoreThreadCount> 
<forkCount>3C</forkCount> 
<reuseFork>true</reuseFork> 

le nombre de teste Ignoré varient. Voir le résumé ci-dessous pour 50 exécutions:

01. Tests run: 543, Failures: 2, Errors: 176, Skipped: 8 

... 34 runs with similar outputs... 

35. Tests run: 543, Failures: 6, Errors: 173, Skipped: 8 
36. **Tests run: 543, Failures: 2, Errors: 182, Skipped: 11** 
37. **Tests run: 543, Failures: 2, Errors: 176, Skipped: 12** 
38. Tests run: 543, Failures: 4, Errors: 177, Skipped: 8 
39. Tests run: 543, Failures: 3, Errors: 175, Skipped: 8 
40. Tests run: 543, Failures: 4, Errors: 174, Skipped: 8 
41. Tests run: 543, Failures: 3, Errors: 172, Skipped: 8 
42. Tests run: 543, Failures: 3, Errors: 172, Skipped: 8 
43. **Tests run: 543, Failures: 2, Errors: 176, Skipped: 12** 
44. Tests run: 543, Failures: 3, Errors: 176, Skipped: 8 

... 5 runs with similar outputs... 

50. Tests run: 543, Failures: 3, Errors: 172, Skipped: 8 

Bien qu'il est arrivé dans 3/50 des cas, je me attendais à voir des chiffres différents que dans Errors et Failures mais jamais dans Skipped.

Des idées sur le sujet? Merci d'avance.

EDIT:

  • Junit Version: 4.12
  • Surefire Version: 2.18.1
+0

Intéressant, quelle est votre version de JUnit? – Tunaki

+0

@Tunaki J'ai édité mon post avec les versions JUnit et Surefire. Ils sont respectivement de 4.12 et 2.18.1. –

+0

Cela ressemble à un bug dans surefire. Je ne peux pas trouver un existant cependant. Pourriez-vous essayer avec différentes valeurs ''? – Tunaki

Répondre

2

CONSTAT:

Les tests peuvent être ignorés dans l'exécution d'exécution:

En effet , il existe des tests avec des hypothèses dans cette suite de tests particulière:Compte tenu des circonstances, je crois que le non-déterminisme est dû à des hypothèses qui peuvent être violées lors de l'exécution de tests en parallèle.