es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo ejecutar casos de prueba de SpecFlow en el pipeline de Gitlab para la implementación de CI/CD.

Quiero implementar CI/CD para que cada vez que el equipo de desarrollo realice cambios en su construcción, se ejecute toda mi suite de automatización antes de la construcción y implementación.

Tengo un archivo yml en GitLab y scripts de casos de prueba automatizados en Visual Studio (framework Specflow en C#).

A continuación, se muestra el archivo yml:

demo_job_1:
     stage: test
     tags:
       - win
     script: 
       - echo "Prueba 1 iniciada"
       - 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\Extensions\TestPlatform\vstest.console.exe /NombreProyecto.dll'
       - 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\MSTest /testcontainer:D:\Users\nombreusuario\source\repos\Project\NombreProyecto\bin\Debug\netcoreapp3.1\NombreProyecto.dll'
       - 'D:\Users\nombreusuario\source\repos\Project\NombreProyecto\NombreProyecto.sln\Test\TestFeature1.csproj'

Pero mi trabajo se está ejecutando sin ejecutar realmente ninguno de los casos de prueba del proyecto.

Estructura de carpetas en Visual Studio:
Imagen

He intentado hacer muchos cambios en la ruta, pero ninguno funcionó. ¿Estoy ingresando la ruta incorrecta? ¿Alguien puede ayudarme con esto? Si el archivo yml está completamente incorrecto, ¿alguien puede por favor guiarme en lo mismo? ¡Gracias de antemano! 🙂

PD: Validé el yml antes de comprometerlo y el validador de yml lo mostró como el archivo yml correcto.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que el script en tu archivo yml no está ejecutando correctamente los casos de prueba. Aquí tienes algunas sugerencias:

    • Primero, asegúrate de que tus scripts de prueba funcionen correctamente localmente, es decir, que se ejecuten sin errores y produzcan los resultados esperados.
    • Verifica si las rutas que estás utilizando en el script para llamar a los casos de prueba son correctas. Puedes intentar ejecutar los comandos en una ventana de la línea de comandos para ver si ejecutan las pruebas.
    • Parece que estás utilizando dos marcos de prueba diferentes (MSTest y vstest) en el mismo script. Asegúrate de haber instalado los marcos necesarios en el servidor donde se ejecuta tu pipeline.
    • Intenta eliminar las comillas simples alrededor de las rutas y argumentos en tu script. No son necesarias y podrían estar causando errores.
    • Considera usar la caché de GitLab CI para acelerar tus compilaciones mediante el almacenamiento en caché de las dependencias del proyecto. Esto reducirá el tiempo necesario para descargar las dependencias en cada compilación.
    • Puedes usar las herramientas de calidad de código integradas de GitLab para asegurarte de que tu código cumpla con ciertos estándares.

    Aquí tienes una versión actualizada de tu archivo yml de acuerdo con las sugerencias anteriores:

    demo_job_1:
      stage: test
      tags:
        - win
      script: 
        - echo "Test 1 comenzó"
        - "C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/IDE/Extensions/TestPlatform/vstest.console.exe ProjName.dll"
        - "C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/IDE/MSTest /testcontainer:D:/Users/username/source/repos/Project/ProjName/bin/Debug/netcoreapp3.1/ProjName.dll"
        - "C:/Program Files/dotnet/dotnet.exe test D:/Users/username/source/repos/Project/ProjName.sln/Test/TestFeature1.csproj"
    

    Este script asume que has instalado dotnet y vstest y los has añadido a la variable de entorno PATH de tu sistema. Asegúrate de ajustar las rutas según tu entorno.

    ¡Espero que esto te ayude!

Comments are closed.