Estoy buscando ejecutar pruebas NUnit automatizadas para una aplicación C #, todas las noches y en cada confirmación de svn.
¿Es esto algo que Jenkins-CI puede hacer?
¿Existe un tutorial en línea o un documento de instrucciones que documente una configuración similar que pueda ver?
c#
continuous-integration
hudson
jenkins
arándanos
fuente
fuente
Respuestas:
Necesitaba hacer exactamente lo que tú haces, así es como configuré a Jenkins para hacer esto:
Prueba de dll única:
Prueba de dll múltiple usando proyectos de prueba NUnit :
Una vez que se haya creado su proyecto, NUNit ahora se ejecutará y los resultados se podrán ver en el Panel de control (si se desplaza sobre el ícono del Informe meteorológico) o en la página del proyecto debajo de Resultado de la última prueba .
También puede ejecutar el comando desde Visual Studio o como parte de su proceso de compilación local.
Aquí hay dos publicaciones de blog que usé como referencia. No encontré ninguno que se ajustara exactamente a mis requisitos:
Guía de 1 hora para la configuración de integración continua: Jenkins cumple con .Net (2011)
Guía para crear proyectos .NET usando Hudson (2008)
fuente
"C:\Program Files (x86)\NUnit 2.6.3\bin\nunit-console-x86.exe" UnitTests/UnitTests.nunit
. Funcionó perfectamente para mí.Si no desea codificar sus proyectos de prueba unitaria, es mejor que escriba un script para obtener todos los dll de su proyecto de prueba unitaria. Lo hacemos con Powershell y seguimos una convención específica para nombrar nuestros proyectos de pruebas unitarias. Aquí está el contenido del archivo de PowerShell que ejecuta nuestras pruebas unitarias:
El script es lo suficientemente robusto como para reutilizarlo para todos nuestros trabajos de compilación. Si no le gusta la ruta completa a la consola NUnit, siempre puede poner esa ubicación en su variable de entorno PATH.
Luego colocamos el archivo RunUnitTests.ps1 en nuestro servidor de compilación y usamos este comando por lotes:
fuente
[string] $sourceDirectory = $(get-location)
y para las rutas con espacios.Tuve que cambiar el pase de ensamblaje a nUnit to$cFiles = $cFiles + '"' + $file + '"' + " "
Para granjas Nunit 3 o superior:
Paso de construcción (línea de comandos de Windows)
"c:\Program Files (x86)\NUnit.org\nunit-console\nunit3-console.exe" c:\AutomationTraining\CSharpSelenium\bin\Debug\test.dll --result=TestR.xml;format=nunit2
Paso posterior para la publicación de informes de Nunit, solo muestra el archivo de resultados de la prueba en el directorio del espacio de trabajo de Jenkins, no en su proyecto: TestR.xml
Necesitamos hacer los resultados de las pruebas en formato nunit2 porque ahora el complemento Jenkins Nunit no reconoce el formato de resultados Nunit3. También el formato de cadena de opciones es diferente:
--result=TestR.xml;format=nunit2
NO/xml=nunit-result.xml
fuente
Esto funciona muy bien, lo he configurado antes.
Configure NUnit para generar los resultados en un archivo XML y configure NUnit Jenkins Plugin para consumir este archivo XML. Los resultados estarán disponibles en el tablero.
Ahora, la forma de invocar NUnit depende de usted. La forma en que lo hicimos fue: el trabajo de Jenkins ejecuta NAnt target ejecuta NUnit test suite.
Puede configurar los trabajos de Jenkins para que se ejecuten en la confirmación o se programen en un momento determinado.
fuente
La solución de Ralph Willgoss está funcionando bien, pero cambié 2 cosas para que fuera genial:
a) Usé un proyecto NUnit en lugar del archivo DLL directamente. Esto hace que sea más fácil agregar más ensamblados o configurar la prueba en la GUI de NUnit.
b) Agregué una línea más al lote para evitar que la compilación fallara cuando falla una prueba:
El complemento NUnit mencionado marca la compilación como INESTABLE automáticamente, que es exactamente lo que quiero, cada vez que falla una prueba. Se muestra con un punto amarillo.
fuente
Creo que es mejor fallar la compilación cuando no se aprueba para no implementarla. Haz algo como esto:
Referencia: http://www.greengingerwine.com/index.php/2013/01/tip-check-errorlevel-in-your-post-build-steps-when-using-nunit/
fuente
Jenkins tiene complementos que lo admitirán. La configuración exacta dependerá bastante de la configuración de su proyecto. Hay complementos específicos para nUnit, MSBuild, nAnt, etc. Empiece por mirar la página de complementos, pero no debería ser muy difícil de entender.
fuente
Esta es mi solución para ejecutar OpenCover con vstest en Jenkins:
Cada dll de prueba se ejecuta en un proceso propio porque tuvimos problemas para ejecutar todas las dll de prueba en un solo proceso (problemas con la carga del ensamblaje).
fuente
Para .Net Core, basta con agregar el paso de compilación "ejecutar shell" con el siguiente script:
Después de eso, agregue la acción posterior a la compilación "Publicar informe de resultado de prueba de MSTest" para que los resultados de la prueba sean visibles.
La ruta predeterminada de los informes de prueba debe ser
**/*.trx
y publicará todos los.trx
archivos producidos .fuente