Archives par étiquette : Tests

image

3 bonnes raisons d’utiliser différents frameworks de tests – Tips #1 Bis

Suite au relai de mon post sur le très bon test runner proposé par Visual Studio 11 et son support de différents frameworks de tests par Richard Clark, celui-ci se posait la question de l’intérêt de supporter différents frameworks de tests au sein (par exemple) d’une même solution.

image

Je vous propose donc aujourd’hui 3 bonnes raisons d’utiliser différents frameworks de tests :

  • La possibilité de réutiliser, sans migrer, des tests existants tout en switchant (pour tout ou partie) les nouveaux tests sur un nouveau framework. Vous appréciez l’intégration de MS Test mais ne supportez pas le non respect du pattern AAA pour les tests liés à la gestion d’exception ? Continuez d’utiliser MS Test, et utilisez un autre framework comme xUnit qui vous permettra d’avoir des tests de meilleure qualité.
  • Le support de frameworks de tests ciblants différents langages. Exemple : Je développe un site web ASP.net et je souhaite créer et exécuter des tests unitaires et d’intégration pour mon code VB ou C# mais également pour du code javascript. Je peux donc utiliser à présent MS Test, xUnit, nUnit ou autres pour le code managé, mais également Chutzpah pour les tests du code JS.
  • Le support de frameworks de tests proposant différents types de tests. On utilise en effet généralement un seul et même framework pour développer tests unitaires et tests d”intégration, mais il existe d’autres types de framework permettant d’écrire des tests se rapprochant au plus près de la définition des spécifications (comme MSpec), ou proposant une syntaxe naturelle pour les assertions. Il est donc possible de les utiliser de manière complémentaire avec les frameworks plus “traditionnels” avec Shoudly par exemple.
image

L’exécution automatique de tests avec VS 11 – Tips #2

Après la présentation hier de l’ouverture de VS 11 à tous les frameworks de tests qui permet d”éviter d’avoir différents tests runner et surtout de développer des tests basés sur plusieurs frameworks de tests, je vous propose aujourd’hui une astuce toute bête mais bien pratique : l’exécution automatique de tests.

image

Il est à présent possible d’exécuter les tests présents dans votre solution de manière automatique juste après une simple compilation.

Un petit Ctrl+Shift+B et une fois la compilation réussie l’exécution de tests se lance :

image

A noter qu’une sélection des tests à exécuter est réalisée par Visual Studio. Contrairement à mon screenshot qui présente un cas simple, Visual Studio 11 décide quels tests sont à exécuter en priorité. Ceux qui ne sont pas exécutés se retrouvent avec une icône légèrement grisée afin d’indiquer qu’ils n’ont pas été ré-exécutés.

image

Le support des framework de test dans VS 11

La beta de Visual Studio 11 est disponible depuis hier, je vais donc à présent essayer de vous présenter quelques nouveautés présentes dans cette beta.

Une des nouveautés les plus intéressantes concerne le support de différents frameworks de test directement dans Visual Studio 11.

Il était bien évidemment possible de développer des tests unitaires et d’intégration en utilisant d’autres framework que MS Test, mais l’utilisation de ces frameworks nécessitaient jusqu’à présent l’utilisation de tests runners dédiés ou génériques plus ou moins bien intégrés avec Visual Studio. Une des références dans le domaine est le test runner de ReSharper qui permet d’exécuter des tests MS Test mais aussi des tests nUnit.

Visual Studio 11 propose à présent d’intégrer simplement n’importe quel framework de tests via une API qui permet de développer des adapters.

En autres mots, le test runner de Visual Studio 11 est à présent totalement découplé de MS Test.

Prenons comme premier exemple, une classe bateau :

image

Si vous avez installé xUnit, vous pouvez à présent installer le runner de xUnit compatible avec Visual Studio 11. Ce test runner n’est pas un test runner indépendant, il s’agit en réalité d’un simple adapter qui permet de se plugger au test runner de Visual Studio 11 :

image

Il est évidemment possible de créer un test en suivant les principes de ce framework :

image

Et lorsque l’on exécute le test, on retrouve ensuite le résultat de ce test directement l’explorateur de tests de VS 11.

image

Ce qui rend encore plus intéressant avec cette ouverture vers d’autres frameworks de tests, est qu’il est tout à fait possible de créer des tests en utilisant d’autres frameworks de test tout en restant dans le même projet !

Ainsi l’ajout d’un test basé sur MS Test :

image

permet d’avoir directement le résultat de ce test intégré avec les autres tests :

image

Fini donc les frustrations d’utiliser tel ou tel framework de test, ou les potentielles difficultés de switcher vers tel ou tel framework de test, il est possible d’utiliser simultanément ceux qui vous conviennent le mieux !

Et bien évidemment, l’outil de couverture de code de Visual Studio 11 prend en compte l’intégralité des tests :

image

Vous pouvez consulter la liste des adapters déjà disponibles sur ce lien, à savoir que d’autres adapters pour d’autres framework devraient arriver très prochainement.