41 votes

Comment exécuter les tests SpecFlow dans Visual Studio 2010?

Essayer d'obtenir SpecFlow en cours d'exécution avec une nouvelle VS2010 Professionnel de l'installation. Créé une nouvelle application de console et ajouté des références à NUnit et SpecFlow. Créé un SpecFlow fonctionnalité. L' .fonctionnalité avec le code de modèle par défaut est créé.

Maintenant, j'essaie d'exécuter ce test, mais je ne comprends pas comment. Quand je clic droit sur le projet (au niveau supérieur), il n'y a pas de "lancer le test(s)" option de la souris sur le menu déroulant. N'ont-ils pas SpecFlow installer correctement, je suis en manque quelques références ou certains autres outils dont j'ai besoin pour l'installer?

82voto

mfloryan Points 5544

Si vous voulez être en mesure d'exécuter vos tests directement à partir de Visual Studio 2010 sans outils supplémentaires ou des extensions que vous devez configurer SpecFlow à utiliser MsTest comme son unit test framework.

Cela peut être fait dans votre fichier de configuration d'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 code généré-derrière le fichier contiendra alors MsTest les tests qui sont reconnaissables par Visual Studio et peut être exécuté avec le build-it test runner.

Pas besoin d'utiliser NUnit à tous.

10voto

jbandi Points 4896

SpecFlow ne fournit pas un coureur lui-même.
SpecFlow génère des accessoires pour l'une des communes de l'Unité de Test-Cadres. Dans SpecFlow 1.3 NUnit (par défaut), MSTest et xUnit.net sont pris en charge (configuré dans l'Application.config).

Pour exécuter les appareils que vous avez à utiliser un coureur qui est capable de les exécuter. ReSharper est une très bonne option pour un test runner qui est integratied dans VisualStudio, mais il n'est pas libre. ReSharper vous donne la "Exécuter des Tests Unitaires" du menu contextuel dans l'explorateur de solutions, vous faites allusion.

Une alternative pour VisualStudio l'intégration est TestDriven.Net (en 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-Runner et une ligne de commande runner).
Pour MSTest vous pouvez utiliser le natif de VisualStudio intégration pour l'exécution des tests (cependant, je trouve que un peu maladroit).
xUnit.net est également livré avec ses coureurs, mais je ne suis pas familier avec eux.

En outre, vous pouvez utiliser MSBuild tâches à exécuter les luminaires ...

6voto

Luke McGregor Points 11824

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

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

voir SpecFlow à tort en utilisant NUnit

4voto

Alister Scott Points 2294

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 les fonctionnalités de SpecFlow dans NUnit et générer un rapport HTML. Voir: http://watirmelon.com/2011/02/18/c-sharp-atdd-on-a-shoestring/

4voto

pkr2000 Points 95

Quelque chose qui m'a attiré. Je devais m'assurer que le type de projet était un projet test. Je devais décharger le projet et changer le GUID du projet en celui d'un projet de test unitaire. Une fois que j’ai fait cela, le test SpecFlow (et tous les autres) du projet a pris forme

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X