En la red hay muchos artículos sobre cómo utilizar SpecFlow, cómo configurar TFS para ejecutar pruebas, pero no hay ninguno que contenga todos los aspectos. En este artículo, explicaré cómo hacer que la ejecución y edición de los escenarios de SpecFlow sean cómodos para todos.
A continuación, descubrirás cómo obtener:
- Ejecución de pruebas desde TFS
- Enlace automático de los escenarios a los casos de prueba en TFS
- Contenido siempre actualizado de los casos de prueba en TFS
- Posibilidad de editar los escenarios directamente en el sistema de control de versiones por los testers

Antecedentes
Nos enfrentamos a la tarea de automatizar la prueba de la aplicación utilizando el enfoque BDD. Dado que el sistema principal de seguimiento de tareas en nuestra empresa es TFS, se formó en mi mente la imagen de que los pasos del escenario de SpecFlow son los pasos de los casos de prueba en TFS, y las pruebas se ejecutan desde los planes de prueba. A continuación, explicaré cómo lo implementé.
Qué necesitaremos:
- Proyecto con pruebas en SpecFlow
- Azure DevOps Server (también conocido como Team Foundation Server)
- Herramienta para sincronizar los escenarios de SpecFlow con los casos de prueba en TFS
Configuración
1. Creación de una compilación del proyecto con pruebas
Aquí todo es sencillo, compilación y publicación de artefactos. Más detalles sobre la tercera tarea a continuación.

2. Creación de un lanzamiento para ejecutar pruebas
Creamos un lanzamiento con una tarea — Visual Studio Test

En este caso, la tarea está configurada para ejecutar pruebas manualmente desde el plan de pruebas.

3. Sincronización de casos de prueba
Sabemos que Visual Studio permite vincular métodos de prueba a casos de prueba en TFS y ejecutarlos desde los planes de prueba. Para no hacer esto manualmente, y también para sincronizar el contenido de los escenarios, escribí una sencilla aplicación de consola . El principio es simple: analizamos el archivo feature y, utilizando la API de TFS, actualizamos los casos de prueba.
Cómo utilizar FeatureSync
Agregamos el espacio de nombres y la localización en el encabezado del archivo feature:
#language:en
@Namespace:Application.Autotests
Feature: Log to application*el espacio de nombres debe coincidir con el nombre del archivo .dll en el que se encuentran los métodos de prueba
Creamos casos de prueba vacíos en TFS y añadimos etiquetas con sus id a los escenarios:

@2124573 @positiva
Escenario: Autorización exitosa
Dado que estoy en la página de autorización
Y ingreso:
| Usuario | Contraseña |
| usuario | pass |
Cuando presiono el botón de Login
Entonces el navegador redirecciona a la página de inicioEjecutamos FeatureSync:
FeatureSync.exe -f C:FolderWithFeatures -s https://tfs.server.com/collection -t 6ppjfdysk-your-tfs-token-2d7sjwfbj7rzbaEn nuestro caso, la ejecución se produce después de la compilación del proyecto con pruebas:

Resultado de la sincronización
Se han sincronizado los pasos del escenario de SpecFlow y se ha marcado el estado de Automatización


4. Configuración del plan de pruebas
Creando un plan de pruebas, añadimos nuestros casos automatizados, en la configuración seleccionamos la compilación y el lanzamiento.


5. Ejecución de pruebas
Seleccionamos la prueba necesaria en el plan de pruebas y la ejecutamos.

Conclusión
Ventajas de esta configuración:
- cualquier tester puede abrir el archivo feature en la interfaz web de control de versiones, editarlo y los cambios se aplicarán inmediatamente después de la compilación.
- se pueden ejecutar pruebas en cualquier momento de forma individual.
- modelo de prueba transparente: siempre sabemos qué hace la prueba que hemos ejecutado.
Fuente: habr.com

