Meilleures pratiques pour la rédaction de tests unitaires parallèles
-
06-07-2019 - |
Question
Je cherchais à utiliser des tests unitaires parallèles pour nos projets et je me demandais quelles étaient les meilleures pratiques pour réellement écrire de tels tests unitaires parallèles.
La solution
Si par tests unitaires parallèles, vous entendez des tests pouvant être exécutés simultanément, le conseil le plus important que je puisse vous donner est d'éviter les "projets partagés".
Le livre Modèles de test xUnit décrit le terme Fixture, qui peut fondamentalement être décrit comme tout le contexte dans lequel chaque scénario de test est exécuté, y compris les données persistantes et transitoires .
Un projecteur partagé indique que les scénarios de test partagent un certain contexte lors de l'exécution. Si ce contexte est modifiable, des conditions de concurrence peuvent se produire.
Garder un appareil partagé immuable (un appareil commun immuable) vous permettra d’exécuter des tests en parallèle, mais encore mieux, les appareils appelés Fresh Fixtures (où chaque cas de test possède son propre appareil) sont thread-safe. définition, car seul le scénario de test lui-même a accès au projecteur.
Les exemples de dispositifs partagés incluent tout type de test utilisant une base de données partagée, mais également des tests pour lesquels vous avez un état statique en mémoire dans le système à tester (SUT) ou dans les tests eux-mêmes; vous devez donc éviter cela. .
Vous devez également garder à l'esprit que si votre SUT accède à des données partagées (statiques), cet accès lui-même doit être thread-safe.
Autres conseils
Quelques liens intéressants pour vous:
Exécution de tests unitaires en parallèle
Il y a des réponses intéressantes dans cette Stackoverflow Questions. J'espère que cela vous aidera.