Multi Thread - MS Test - Test basé sur les données
-
12-11-2019 - |
Question
Arrière plan
J'ai écrit une suite de tests dans "MSTEST" qui a un modèle XML.
Le test remplit ce modèle avec des données de ma base de données et les publie vers un service Web. Lorsque le service Web répond avec une réponse, les données XML d'entrée sont comparées aux données XML reçues du service dans sa réponse, et les entrées sont enregistrées dans un fichier texte.
Fondamentalement, ce test a une fonction de point d'entrée (c'est la seule fonction avec l'attribut de méthode de test) qui anime ensuite toutes les autres fonctions du test
Le problème
Le problème est que lorsque le test prend trop de temps. Publier sur le service Web et récupérer une réponse prend presque 2 minutes Pour chaque instance et j'ai 100 instances de données de ce type, il faudrait donc environ 200 minutes au minimum pour terminer.
Mon patron m'a dit d'examiner le multi-threading ce test, espérons-le, espérons-le, pour réduire le temps.
Une autre chose que je voudrais souligner, c'est que je passe par différentes instances de XML d'entrée en utilisant l'attribut DataSource similaire à ce qui est mentionné dans Cet article. La différence est que j'utilise une vue depuis ma base de données pour exécuter l'attribut de source de données plutôt qu'un fichier CSV.
Toutes les idées sur le multi-thread de ce test et la sécurité des fils seront grandement appréciées. Merci d'avance
La solution 2
TPL fonctionne pour moi, je devais juste s'assurer que chaque variable était locale
Autres conseils
Pouvez-vous s'il vous plaît expliquer la façon dont vous exécutez les appels vers "mstest"? Si vous exécutez manuellement l'exécution des tests, vous pouvez ajouter un support multi-thread très facilement et gagner beaucoup de temps précieux, car votre patron a à l'esprit :)
J'ai joint ce lien de vue d'ensemble MSDN qui couvre également les bases de la sécurité du thread:http://msdn.microsoft.com/en-us/library/ms173178.aspx
Si vous utilisez une option intégrée de l'application IDE / Test, vous pouvez être limité aux fonctionnalités qu'il a à offrir.
J'attends ta réponse.