Hay muchos artículos en Internet sobre cómo usar SpecFlow y cómo configurar TFS para ejecutar pruebas, pero ninguno contiene todos los aspectos. En este artículo, le diré cómo puede hacer que el inicio y la edición de scripts de SpecFlow sean convenientes para todos.
Debajo del corte aprenderás cómo conseguir:
- Ejecución de pruebas desde TFS
- Vinculación automática de scripts a casos de prueba en TFS
- Contenido siempre actualizado de casos de prueba en TFS
- Capacidad de editar scripts directamente en el sistema de control de versiones por parte de los evaluadores.
Prehistoria
Nos enfrentamos a la tarea de automatizar las pruebas de aplicaciones utilizando el enfoque BDD. Dado que la base del sistema de seguimiento de tareas en nuestra empresa es TFS, tenía una imagen en mi cabeza donde los pasos del script SpecFlow son los pasos de los casos de prueba en TFS y las pruebas se inician desde los planes de prueba. A continuación se muestra cómo lo implementé.
Lo que necesitamos:
- Proyecto con pruebas en SpecFlow
- Servidor Azure DevOps (también conocido como Team Foundation Server)
- Una herramienta para sincronizar scripts de SpecFlow con casos de prueba en TFS
Ajuste
1. Crear una compilación de proyecto con pruebas.
Aquí todo es sencillo, montaje y publicación de artefactos. Más sobre la tercera tarea más adelante.
2. Crear una versión para ejecutar pruebas.
Creación de una versión con una tarea: prueba de Visual Studio
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 le permite vincular métodos de prueba a casos de prueba en TFS y ejecutarlos desde planes de prueba. Para no hacer esto manualmente y también para sincronizar el contenido de los scripts, escribí una aplicación de consola simple.
Cómo utilizar FeatureSync
Agregue espacio de nombres y configuración regional al encabezado del archivo de características:
#language:en
@Namespace:Application.Autotests
Feature: Log to application
*el espacio de nombres debe coincidir con el nombre del archivo .dll que contiene los métodos de prueba
Creamos casos de prueba vacíos en TFS y agregamos etiquetas con su identificación a los scripts:
@2124573 @posistive
Scenario: Successful authorization
Given I on authorization page
And I enter:
| Login | Password |
| user | pass |
When I press Login button
Then Browser redirect on Home page
Inicie FeatureSync:
FeatureSync.exe -f C:FolderWithFeatures -s https://tfs.server.com/collection -t 6ppjfdysk-your-tfs-token-2d7sjwfbj7rzba
En nuestro caso, el lanzamiento se produce después de construir el proyecto con pruebas:
Resultado de sincronización
Los pasos del guión de SpecFlow están sincronizados y el estado de automatización está establecido
4. Configurar un plan de prueba
Creamos un plan de prueba, le agregamos nuestros casos automatizados, seleccionamos compilar y lanzar en la configuración
5. Realizar pruebas
Seleccione la prueba requerida en el plan de prueba y ejecútela.
Conclusión
Las ventajas de esta configuración:
- cualquier evaluador puede abrir el archivo fetaure en el formulario web de control de versiones, editarlo y los cambios entrarán en vigor inmediatamente después de la compilación.
- Puedes ejecutar pruebas individualmente en cualquier momento.
- Modelo de prueba transparente: siempre sabemos qué hace la prueba que lanzamos.
Fuente: habr.com