2009-06-10 9 views
68

Rápido, ¿alguien ha encontrado una biblioteca similar al pepino de Ruby (una DSL legible para humanos para definir historias de casos de uso contra los que se puede probar) en la esfera .NET?Alternativa de pepino para .NET

Respuesta

72

También debe comprobar fuera de SpecFlow, que es un proyecto de código abierto que ver con BDD .NET.

SpecFlow usa el mismo formato de definición (pepinillo), como el pepino, pero puede escribir sus definiciones de pasos en .NET. Básicamente genera clases de pruebas unitarias (NUnit, MsTest, xUnit, etc.) de sus archivos de características, por lo que puede usar el mismo motor de ejecución de pruebas unitarias, como lo hace con las pruebas de unidades reales. De esta forma, también es más fácil integrar las pruebas funcionales de BDD a la compilación de integración.

En las versiones recientes, SpecFlow tiene una función de coloreado de sintaxis para Visual Studio 2010 y soporte para Silverlight y Mono/MonoDevelop.

+0

Agradable, se ve muy bien. Gracias – Owen

32

Sure. Se llama Cucumber. Hay un ejemplo de cómo probar el código .NET en el Cucumber examples directory y la documentación en el Wiki de pepino para .NET y Mono.

+0

que intentaron esto, pero mantuvo golpear un bache con el funcionamiento de la envoltura ICucumber. El mensaje que recibí decía que faltaba el archivo .yml config. – Owen

+0

Intenté todo lo que se describe aquí también: http://thomaslundstrom.blogspot.com/2009/03/on-getting-started-with-using-cucumber.html – Owen

+1

Supongo que se está refiriendo a este mensaje: "pepino. yml no se encontró. Consulte la documentación de pepino para definir perfiles en cucumber.yml. Debe definir un perfil 'predeterminado' para usar el comando pepino sin argumentos. Escriba 'pepino --help' para su uso. (Pepino :: Cli :: YmlLoadError) ", ¿verdad? La pregunta obvia, cuando un programa se queja de que no pudo encontrar un archivo, ¿está el archivo realmente allí o no? Porque, si el archivo no está allí, entonces la razón por la que no se pudo encontrar es algo obvio ... –

3

me escribió una entrada de blog que detalla el proceso que seguí para conseguir pepino corriendo con IronRuby: http://hotgazpacho.org/2009/06/cucumber-and-ironruby-it-runs/

+0

Lo echaré un vistazo y le responderé. – Owen

+0

También estoy trabajando en portar win32console a IronRuby para que podamos obtener resultados de consola de color como lo hacemos en MRI: http://github.com/hotgazpacho/ironruby-win32console/ –

17

Parece que hay 3 posibilidades en este espacio:

  1. Uso pepino y IronRuby. Here's a blog en algunos pasos para comenzar con esto. La desventaja parece ser el rendimiento. He leído cuentas que dicen que es slower in general, y otras que dicen que es solo really slow to spin up. Sin embargo, esto está lejos de ser concluyente, ya que IronRuby todavía está en desarrollo activo.

  2. Use Cuke4Nuke. He escuchado este producto recomendado algunas veces. En realidad utiliza Ruby y Cucumber comunes, pero ejecuta su código .NET a través de un servidor. Afortunadamente, toda esa complicación es transparente a medida que la utilizas. Cuke4Nuke ya no se encuentra en desarrollo activo.

  3. Use SpecFlow. Este es un puerto .NET de Cucumber. Debido a esto, es posible que no tenga todas las funciones de Cucumber, y puede tener características adicionales. Lo bueno es que no tienes que tener instalado Ruby.

En este momento no parece claro cuál de estas es la mejor opción. Personalmente, estoy pensando en comenzar con Cuke4Nuke.

+2

Para cualquiera que lea esto, parece que Cuke4Nuke está en desuso en favor de SpecFlow http://www.richardlawrence.info/2011/10/21/the-future-of-cucumber-on-net/ – GuiSim

2

StoryTeller está algo relacionado aunque no es estrictamente BDD. Parece apoyar un tipo de prueba algo diferente, pero está escrito en .NET. Más información en Jeremy Millers blog

2

También hay StoryQ. Este es un enfoque centrado en el desarrollo para las historias de usuarios que pueden informar a los clientes que regresan. http://storyq.codeplex.com

StoryQ es un marco BDD portátil (de dll único) para .NET 3.5. Se ejecuta dentro de su corredor de prueba existente y ayuda a producir resultados de prueba amigables para los humanos (html o texto). La interfaz fluida de StoryQ agrega tipeo fuerte, intellisense y documentación a su gramática BDD.

2

BDD in plain English se puede hacer con Concordion.NET. Las especificaciones del comportamiento esperado están escritas en HTML.

Cualquier oración de cualquier estructura se puede usar para las pruebas de Concordion.NET. Por ejemplo, no es necesario escribir una oración como "dada una cuenta bancaria con un saldo de 10 $, cuando se inicia un retiro de 20 $, la transacción falla". En su lugar, se puede usar cualquier tipo de oración como "una transacción de 20 $ falla, si la cuenta no contiene saldo suficiente de 10 $".

pruebas Concordion.NET se ejecutan con la ayuda de NUnit, que está integrado en muchos entornos diferentes: https://github.com/concordion/concordion-net