web-dev-qa-db-fra.com

Comment exécuter des tests SPECLFLOW dans Visual Studio 2010?

Essayer de faire fonctionner Specflow avec une installation professionnelle VS2010 fraîche. Création d'une nouvelle application de console et a ajouté des références à Nunit et Specflow. Créé une fonctionnalité SPECFLOW. Le .Le siècle avec le code de modèle par défaut est créé.

Maintenant, j'essaie de courir ce test, mais je ne comprends pas comment. Lorsque j'ai cliqué sur le bouton droit de la souris sur le projet (au niveau supérieur), il n'y a pas d'option "Exécuter tests (s)" dans le menu déroulant de la souris. La spécification n'a-t-elle pas été installée correctement, je manque des références ou un autre outil que j'ai besoin d'installer?

40
testerboy

Si vous souhaitez pouvoir exécuter vos tests directement à partir de Visual Studio 2010 sans outils ou extensions supplémentaires que vous ne devez configurer SPECFLOW pour utiliser Mstest comme cadre de test unitaire.

Cela peut être fait dans votre fichier de configuration de l'application avec les éléments suivants:

  <configSections> 
    <section 
       name="specFlow" 
       type="TechTalk.SpecFlow.Configuration.ConfigurationSectionHandler, TechTalk.SpecFlow"/> 
  </configSections> 
  <specFlow> 
    <unitTestProvider name="MsTest" /> 
    <!--
        Use this if you're running VS2010
        <unitTestProvider name="MsTest.2010" />
    -->
  </specFlow> 

Le fichier de code de code généré contiendra alors des tests Mstest reconnaissables par Visual Studio et peut être exécuté avec le coureur de test de construction.

Pas besoin d'utiliser Nunit du tout.

81
mfloryan

Specflow ne fournit pas de coureur lui-même.
Specflow génère des luminaires pour l'un des cadres d'unité d'unité commune. Dans Specflow 1.3 Nunit (par défaut), Mstest et Xunit.Net sont pris en charge (configurés dans l'app.config).

Pour exécuter les luminaires, vous devez utiliser un coureur capable de les exécuter. Resharber est une très bonne option pour un coureur de test intégré à VisualStudio, mais ce n'est pas gratuit. RESHARPER vous donne le menu contextuel "Exécution des tests d'unité" dans l'explorateur de la solution, vous vous référez à.

Une alternative pour l'intégration VisualStudio est Testdriven.net (fournissant également un menu contextuel).

Pour Nunit, vous pouvez également utiliser les coureurs qui viennent avec Nunit lui-même (il y a un gui-coureur et un coureur de commande de commande).
[.____] Pour Mstest, vous pouvez utiliser l'intégration native VisualStudio pour exécuter des tests (mais je trouve celui-ci un peu maladroit).
Xunit.net est également livré avec ses coureurs, mais je ne le connais pas avec eux.

De plus, vous pouvez utiliser les tâches MSBUILD pour exécuter les appareils ...

10
jbandi

Juste pour mettre à jour ces questions, dans les dernières versions de Specflow, vous devez utiliser (utilisez Mstest.2010)

<configSections> 
    <section 
       name="specFlow" 
       type="TechTalk.SpecFlow.Configuration.ConfigurationSectionHandler, TechTalk.SpecFlow"/> 
  </configSections> 
  <specFlow> 
    <unitTestProvider name="MsTest.2010" /> 
  </specFlow> 

voir Specflow à tort avec Nunit

6
Not loved

Quelque chose qui m'a attrapé. Je devais m'assurer que le type de projet était un projet de test. Je devais décharger le projet et modifier le projet GUID à celui d'un projet de test unitaire. Une fois que je l'ai fait que le test Specflow (et tout autre) dans le projet a lancé à la vie.

4
pkr2000

J'ai écrit un article de blog sur la manière d'utiliser un fichier de commandes en tant qu'outil externe pour exécuter automatiquement des fonctionnalités spécifiques dans Nunit et générer un rapport HTML. Voir: http://watirateur.com/2011/02/18/c-shapar-atdd-on-a-shoestring/

4
Alister Scott

Les tests SPECFLOW sont exécutés à l'aide de la Nunit (interface graphique), qui doit être invoquée à l'extérieur ou à la varitation de Testdriven.net ou Resharper peut être installé pour prendre en charge l'exécution des tests à partir de Visual Studio.

3
testerboy

J'ai créé une vidéo démontrant comment utiliser Specflow avec VS2010 ici

2
CamronBute

Vous pouvez également essayer Visual Nunit, un plugin open source Nunit Test Runner à Visual Studio 2008 et 2010. Obtenez-le à l'aide de Nuget, pour plus d'informations, voir http://www.bubblecloud.org/visualnunit

0
surya