Cuke4Nuke ou SpecFlow?
Question
Je suis en train de décider si je dois utiliser Cuke4Nuke ou SpecFlow. Quels sont les pro / inconvénients de chacun? Les opinions sur ce qui est mieux et pourquoi.
Merci!
La solution
(je pourrais être biaisé parce que je suis impliqué avec SpecFlow, mais voici mes pensées ...)
Cuke4Nuke est très proche de concombre. Cela promet beaucoup d'avantages:
- Compatibilité
- Obtenir de nouvelles fonctionnalités de concombre quand cucurbitacées (évolue au moins en théorie, mais le soutien des langues est un exemple pour cela)
- Être une partie réelle de la communauté de concombre et de l'écosystème de concombre
Mais cela vient aussi avec quelques inconvénients potentiels:
- Ruby est une nécessité
- Depuis plus d'infrastructures (Ruby, Wire-protocole, l'intégration de ligne de commande ...) est impliqué, la complexité de la solution tout augmente, et les chances que quelque chose dans la chaîne omet montée
- Debugging est possible, mais un peu tracas
- Exécution de scénarios sur le dos-est commandline tout simplement laid, et j'ai encore des problèmes avec certains caractères (allemand trémas). Les solutions rel="noreferrer"> de concombre ne fonctionne pas pour cuke4nuke dans mon cas.
- Intégration avec votre build continue est quelque chose que vous devez travailler pour vous-même
SpecFlow est un projet distinct de concombre. Il essaie d'être aussi près de concombre que possible, mais il y a et des lacunes. Il est prévu d'utiliser le même analyseur que le concombre, pour améliorer la compatibilité au niveau de la langue.
SpecFlow tente d'offrir les avantages suivants:
- Une solution pure .NET (aucune installation de Ruby est nécessaire et Ruby ne participe pas à l'exécution)
- Il y a une intégration de base avec VisualStudio (et il est prévu de faire évoluer ce)
- Les scénarios sont essentiellement UnitTests et peuvent être exécutés avec votre infrastructure existante (NUnit.Runners, ReSharper, VisualStudio MSTest intégration ...)
- Les scénarios et les étapes sont débogable facilement de VisualStudio (juste mettre un point d'arrêt)
- Intégration dans votre build continue devrait être un jeu d'enfant, puisque l'infrastructure pour exécuter des tests unitaires est certainement déjà là
Comme les inconvénients de SpecFlow je vois actuellement:
- Il ne supporte pas autant de langues que Concombre
- Actuellement, il y a une étape « de génération de code » impliqué. Ceci est transparent lors de l'utilisation VisualStudio, et il y a une ligne de commande pour le faire sans VisualStudio, mais beaucoup de gens n'aiment pas génération de code.
- À l'heure actuelle il n'y a pas de coureur explicite pour commandline SpecFlow. Cependant, vous pouvez utiliser votre coureur de ligne de commande unité-test.
- SpecFlow dépend d'un cadre de test unitaire, et actuellement seulement NUnit et MSTest est pris en charge
- Rapports en SpecFlow n'est pas encore très sophistiqué. Concombre ne propose plus d'options, mais je ne sais pas si elles sont disponibles dans cuke4nuke ...
Autres conseils
jbandi donne un bon résumé. Répondre à la question de la même façon (avec l'avertissement contraire de biais, bien sûr).
L'objectif de Cuke4Nuke est pleine compatibilité de concombre dans .NET tout en dupliquant comme peu de code de concombre que possible. Par conséquent, certains des compromis que vous-mis en évidence par exemple. la dépendance Ruby-sont inhérentes à l'outil. D'autres, comme des bugs dans la langue et le soutien formatter et le soutien de débogage limité, sont des questions temporaires et disparaîtront avec les futures versions.
J'ai rencontré quelques problèmes où Cuke4Nuke ne fonctionne pas tout à fait comme le concombre. Mais comme je travaille principalement en anglais, je ne vois pas les questions linguistiques dans mon travail normal. Je salue les mesures de reproduire l'une de ces questions afin que je puisse les corriger. (S'il vous plaît de les envoyer à liste des questions Cuke4Nuke, pas ici.)
Une autre opinion fortement biaisé: Essayez StoryQ :)
Tests StoryQ sont le code fait, vous obtenez beaucoup meilleur soutien refactoring / IDE, et il incorpore au sein de votre coureur de test unitaire existant, donc CI est un jeu d'enfant.
Il est sans doute une question de préférence si vous préférez vérifier dans les caractéristiques de texte brut ou le code compilable. Mais pour nous, nous avons trouvé qu'il était vraiment agréable d'être en mesure de renommer les méthodes narratives et ont toutes les histoires se mettent à jour.
Il est en fait une interface graphique fournie qui permet de convertir des scénarios de texte brut en code StoryQ pour vous, si vous avez déjà un investissement dans des scénarios ou si vous plaintext souhaitez donner le clavier à vos gens d'affaires. Il y a même une forme simple de IntelliSense!
Donnez-lui un aller si vous voulez un point d'entrée ultra-léger en BDD:)
Une autre réponse biaisée: StorEvil mange tous les autres outils .NET BDD
Avantages :. StorEvil a son propre coureur de ligne de commande, a bien des rapports (en utilisant le moteur de vue Spark), et a le meilleur plaintext-> moteur C # traduction et exécution
En outre, il a 100% plus de mal que de toute autre solution.
Inconvénients : StorEvil ne prend pas totalement d'autres langues humaines (sauf l'anglais). intégration à Visual Studio de StorEvil est pas encore aussi bien que les autres outils. StorEvil va boire toute la bière dans le réfrigérateur si vous ne gardez pas un oeil là-dessus.
Je comprends de Richard qu'il a l'intention de cesser Cuke4Nuke et soutient le déplacement quelques-unes des fonctionnalités dans Cuk4Nuke SpecFlow. Donc, la réponse claire est maintenant SpecFlow.
J'ai commencé avec Cuke4Nuke mais ont depuis fait défection à SpecFlow (désolé Richard; -)
Les principales raisons pour moi de faire cette transition étaient:
- SpecFlow a une belle intégration VS2010 pour la coloration syntaxique des fonctions. Il y a un projet Cuke4VS qui offre similaire, mais il n'a pas pas le soutien VS2010 (ou pas quand je regardais la dernière de toute façon, ce qui était assez récente)
- J'ai trouvé des tests de débogage dans SpecFlow pour être plus facile (ne me demandez pas d'élaborer, il semblait juste de cette façon ...; -)
- Cuke4Nuke nécessaire Ruby. J'étais OK avec cela, mais la plupart des C # devs que je connais me spooked par des produits non-MS, Ruby en particulier.
Il y a quelques problèmes avec Specflow / choses que j'aime mieux dans le monde de concombre / Cuke4Nuke:
- la documentation de Specflow est assez « light » - vous devrez être prêt à travailler dur pour recueillir des informations à partir de sources de concombre et Intuit un peu leur application à Specflow. Cela me dit et quelques autres ont des conceptions sur bouchères la documentation afin que peut améliorer au cours des prochains mois.
- Je préfère l'expérience de la gestion de concombre / essais Cuke4Nuke sur la ligne de commande avec leur sortie des scénarios code couleur en fonction du statut (je sais que quelqu'un voit ci-dessus cela comme un point négatif que je suppose donc cela dépend si vous êtes une commande line genre de gars ...)
- La communauté de concombre est plus grand et il y a plus d'activité, il semble que (peut-être) se traduit par plus de gens là-bas pour vous aider.
Dans l'ensemble les deux ont le potentiel d'améliorer la façon dont nous écrivons le logiciel.