Ejecute la “prueba de nodo” como parte de la tarea de comstackción de Visual Studio Team Services con los resultados en la pestaña “pruebas”

Tengo un proyecto que contiene pruebas que estoy ejecutando con Mocha desde la línea de comandos. He configurado una secuencia de comandos de prueba en mis packages.json , que tiene el siguiente aspecto:

"test": "mocha ./**/*.spec.js --reporter dot --require jsdom-global/register"

Actualmente tengo una tarea sencilla configurada en Visual Studio Team Services, que simplemente ejecuta el npm test , esto ejecuta Mocha dentro de una consola y continúa / falla la comstackción dependiendo de si las pruebas pasan.

Lo que me gustaría poder hacer es que los resultados de mis pruebas completen la pestaña “pruebas” en la definición de comstackción una vez que se haya ejecutado. De la misma manera que puedo rellenar esta pestaña si estoy ejecutando pruebas en el código C #.

He intentado usar Chutzpah para esto, pero es demasiado complicado y parece requerir que me lance a través de todo tipo de problemas que implican cambiar mis pruebas y escribir archivos de configuración largos. Ya tengo un montón de pruebas escritas, así que realmente no quiero tener que hacer eso. Cuando finalmente descubrió alguna de mis pruebas, se quejó de las necesidades y otras cosas relacionadas con los módulos Node.

¿Es lo que estoy pidiendo realmente posible? ¿Existe una forma sencilla de lograr esto que sea compatible con la ejecución de mis pruebas en Node?

He encontrado una buena forma de hacerlo que no requiere un adaptador de terceros (por ejemplo, Chutzpah). Implica hacer que Mocha genere su informe en un formato XML y configurar los Servicios de Visual Studio Team para publicar los resultados en un paso adicional de la definición de comstackción.

Instalé mocha-junit-reporter ( https://www.npmjs.com/package/mocha-junit-reporter ) y modifiqué mi script de prueba a lo siguiente:

"test": "mocha ./temp/**/*.spec.js --reporter mocha-junit-reporter --require jsdom-global/register"

Luego creé un nuevo paso en mi definición de comstackción utilizando la tarea “Publicar resultados de prueba”. Establecí el formato de resultado en “JUnit” y agregué la ruta correcta para el archivo test-results.xml generado por el reportero.

Vale la pena señalar que, aunque Mocha viene con un reportero “XUnit”, este formato parece no funcionar correctamente con VSTS, aunque está listado como una opción.

Los resultados de la npm test ahora se muestran en la pestaña “pruebas” junto con otras pruebas de MSTest, etc.

Estoy usando karma y conseguí que esto funcionara de la misma manera que sugirió @ dylan-parry. Algunas excepciones a continuación en caso de que ayude a otros:

paquete.json

  "scripts": { "test": "cross-env NODE_ENV=test karma start" } 

karma.conf.js

 const webpackCfg = require('./webpack.config')('test'); module.exports = function karmaConfig(config) { config.set({ reporters: ['mocha', 'coverage', 'junit'], junitReporter: { outputDir: 'coverage', outputFile: 'junit-result.xml', useBrowserName: false } }) ... 

TFS introduzca la descripción de la imagen aquí

También puede valer la pena agregar que estoy usando branch policies en mi twig de git para evitar que las PR se fusionen si las pruebas fallan, información a través de este enlace:

https://www.visualstudio.com/en-us/docs/git/branch-policies

Aquí está la salida en TFS: introduzca la descripción de la imagen aquí

¡El siguiente paso es conseguir que la cobertura funcione también!

    Intereting Posts