Comment exécuter des tests SpecFlow dans Visual Studio 2010?
essayer de faire fonctionner SpecFlow avec une installation professionnelle VS2010. Création d'une nouvelle application console et ajout de références à NUnit et SpecFlow. Création d'une fonction SpecFlow. Le. fonctionnalité avec le code de modèle par défaut est créé.
maintenant J'essaie de faire ce test, mais je ne comprends pas comment. Lorsque je clique avec le bouton droit de la souris sur le projet (au niveau supérieur), il n'y a pas d'option "Test(s) D'exécution" dans le menu déroulant de la souris. Le SpecFlow ne s'est-il pas installé correctement? quelques références ou un autre outil que je dois installer?
8 réponses
si vous voulez être en mesure d'exécuter vos tests directement à partir de Visual Studio 2010 sans aucun outil supplémentaire ou extensions que vous devriez configurer SpecFlow pour utiliser MsTest comme cadre de test unitaire.
cela peut être fait dans votre fichier de configuration d'application avec ce qui suit:
<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 généré contiendra alors des tests MsTest reconnaissables par Visual Studio et pouvant être exécutés avec le test build-it. coureur.
pas besoin D'utiliser NUnit du tout.
SpecFlow ne fournit pas un coureur lui-même.
SpecFlow génère des fixtures pour l'un des UNI-test-Frameworks communs. Dans SpecFlow 1.3 NUnit( par défaut), MSTest et xUnit.net sont pris en charge (configurés dans L'application).config).
Pour faire fonctionner les appareils, vous devez utiliser un coureur qui est capable d'exécuter. ReSharper est une très bonne option pour un coureur de test qui est intégré dans VisualStudio, mais il n'est pas gratuit. ReSharper vous donne le "Run" Tests unitaires " menu contextuel dans l'Explorateur de solutions, auquel vous faites référence.
une alternative pour l'intégration VisualStudio est TestDriven.Net (fournit é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 un coureur commandline).
Pour MSTest, vous pouvez utiliser L'intégration VisualStudio natif pour exécuter des tests (cependant je trouve que celui-ci un peu maladroit).
xUnit.net vient aussi avec ses coureurs, cependant je ne suis pas familier avec eux.
de plus, vous pouvez utiliser les tâches MSBuild pour exécuter les fixtures ...
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>
j'ai écrit un billet de blog sur la façon d'utiliser un fichier batch comme outil externe pour exécuter automatiquement les fonctionnalités SpecFlow dans NUnit et générer un rapport html. Voir: http://watirmelon.com/2011/02/18/c-sharp-atdd-on-a-shoestring/
quelque Chose qui m'a surpris. Je devais M'assurer que le type de projet était un projet D'essai. J'ai dû décharger le projet et changer le guide du projet en celui d'un projet D'essai unitaire. Une fois que j'ai fait que le SpecFlow (et tout autre) test dans le projet a pris vie
les essais de Specflow sont exécutés en utilisant le NUnit (GUI), qui doit être invoqué à l'extérieur ou alternativement TestDriven.net ou Resharper peut être installé pour supporter l'exécution des tests à partir de Visual Studio.
j'ai créé une vidéo montrant comment utiliser Specflow avec VS2010 ici
vous pouvez également essayer Visual Nunit, un plugin test NUnit open source à Visual Studio 2008 et 2010. Obtenez-le en utilisant NuGet, pour plus d'informations voir http://www.bubblecloud.org/visualnunit