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.

Était-ce utile?

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:

Organiser des tests unitaires

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top