web-dev-qa-db-fra.com

Quelle est la différence entre MSTest.TestAdapter et MSTest.TestFramework et quand ai-je besoin de laquelle?

Quelle est la différence actuelle entre MSTest.TestAdapter et MSTest.TestFramework et quand ai-je besoin de laquelle?

Dans les descriptions de NuGet, vous pouvez lire:

MSTest.TestAdapter

L'adaptateur permettant de découvrir et d'exécuter des tests basés sur MSTest Framework.

MSTest.TestFramework

C'est MSTest V2, l'évolution du framework de test de Microsoft. + Pour découvrir et exécuter des tests, installez MSTest.TestAdapter.


Eh bien, pas très utile et j'installe toujours les deux parce que je ne suis jamais sûr de celui que je devrais prendre. Bizarrement, dans l'un de mes projets de test, je n'ai que le MSTest.TestFramework (je suppose par accident) et ReSharper peut toujours découvrir des tests.

Mes questions sur ces forfaits sont:

  • Avez-vous vraiment toujours besoin d'installer les deux?
  • Pourquoi cela fonctionne-t-il même sans la variable TestAdapter?
  • Que puis-je faire avec la variable TestFramework? Quand aurais-je besoin de celui-ci?

La page du projet sur GitHub aide beaucoup non plus. Le seul lien

Vous pouvez en savoir plus sur MSTest V2 ici .

navigue vers une page qui dit seulement à quel point c'est génial et open-source, mais rien de spécifique concernant l'un ou l'autre des paquets.

8
t3chb0t

Donc, Visual Studio utilise un framework appelé Visual Studio Test Platform pour charger des adaptateurs de test,

https://github.com/Microsoft/vstest

Pour découvrir ou exécuter des cas de test, VSTest appelle les adaptateurs de test en fonction de la configuration de votre projet. (C'est pourquoi NUnit/xUnit/MSTest vous demandent tous d'installer un package NuGet d'adaptateur de test dans vos projets de test d'unité). Donc, MSTest.TestAdapter existe à cette fin.

MSTest.TestFramework implémente lui-même les frameworks de test et ses contrats. Vous devez donc en ajouter une référence NuGet pour pouvoir écrire des scénarios de test unitaires et les faire compiler. Seuls les projets compilés avec l'adaptateur de test peuvent ensuite être utilisés par Visual Studio.

La réponse finale à votre question serait donc "vous avez généralement besoin des deux". 

L’autre réponse de @Nkosi peut bien sûr être la bonne si vous n’avez pas l’intention d’utiliser Visual Studio. MSTest a son propre programme d'exécution de ligne de commande, qui peut exécuter votre projet de test d'unité sans l'adaptateur de test.

9
Lex Li

Avez-vous vraiment toujours besoin d'installer les deux? 

Non Pourquoi? (Voir ci-dessous)

Pourquoi cela fonctionne-t-il même sans TestAdapter?

Il existe d'autres adaptateurs/utilisateurs capables de reconnaître la structure MSTest et de découvrir et d'exécuter des tests MSTest Framework.

Que puis-je faire avec TestFramework? 

Donc, en général, un framework de test est utilisé pour créer/créer vos tests pendant que les adaptateurs/coureurs découvrent et exercent les tests découverts. 

Quand aurais-je besoin de celui-ci?

Il existe plusieurs frameworks et adaptateurs/coureurs et vous utilisez celui de votre choix.

2
Nkosi

MsTest.TestFramework contient la structure principale qui comprend les attributs et les assertions. MsTest.TestAdapter nous permet de découvrir les tests basés sur MsTest et de les exécuter. Par exemple, identifier les méthodes attribuées avec [TestMethod] et les exécuter.

0
Ravishankar S