page change angularjs jasmine automated-tests protractor jasmine2.0

angularjs - change - page title angular 4



¿Por qué mi informe de prueba HTML siempre contiene un archivo XML? (1)

Este código en mi archivo de configuración del protractor funciona perfectamente ... excepto que la creación del archivo html en onComplete siempre usa el archivo junitresults xml de la ejecución de prueba anterior , en lugar del archivo xml creado en la misma función onPrepare del archivo de configuración. Por lo tanto, la página html muestra siempre resultados de prueba uno detrás de lo que dice la marca de tiempo que se muestra en la página html.

Una simple ilustración es que si comienzo sin un archivo xml de una prueba anterior en la carpeta de resultados de prueba, el generador de html no encuentra ningún archivo xml para construir un archivo html y, por lo tanto, no genera ningún archivo html. Pero el nuevo archivo xml todavía se muestra, se coloca en la carpeta y se ignora por completo ... hasta la siguiente ejecución de prueba.

¿Puede ayudarme a obtener mi prueba para generar un archivo xml y luego usar ese archivo xml para generar el archivo html?

¡Gracias!

onPrepare: function() { var capsPromise = browser.getCapabilities(); capsPromise.then(function(caps) { browser.browserName = caps.caps_.browserName.replace(/ /g,"-"); browser.browserVersion = caps.caps_.version; browserName = browser.browserName; browser.reportPath = ''c:/QA/test-results/'' + browser.browserName + ''/''; }). then(function(caps) { var jasmineReporters = require(''jasmine-reporters''); jasmine.getEnv().addReporter(new jasmineReporters.JUnitXmlReporter({ consolidateAll: true, savePath: ''c:/QA/test-results/'' + browser.browserName + ''/'', filePrefix: ''junitresults'' })); }); return browser.browserName, browser.browserVersion, browser.reportPath; }, onComplete: function() { var HTMLReport = require(''jasmine-xml2html-converter''); // Call custom report for html output testConfig = { reportTitle: ''Test Execution Report'', outputPath: browser.reportPath, seleniumServer: ''default'', applicationUrl: browser.baseUrl, testBrowser: browser.browserName + '' v.'' + browser.browserVersion }; new HTMLReport().from(browser.reportPath + ''junitresults.xml'', testConfig); console.log("... aaaannnnd... done."); },


Esto es todo sobre el tiempo. JUnitXmlReporter de jasmine-reporters escribe el resultado en un archivo XML en la jasmineDone llamada de jasmineDone ( fuente ), que sucede después de onComplete .

Lo primero que debe intentar es cambiar a afterLaunch o onCleanup lugar de onComplete . Tenga en cuenta que el objeto del browser no estaría disponible en estos métodos y que necesitaría otras formas de compartir las variables entre las devoluciones de llamada. Ver también:

También puede agregar un reportero personalizado , proporcionando la jasmineDone llamada jasmineDone :

jasmine.getEnv().addReporter({ jasmineDone: function () { var HTMLReport = require(''jasmine-xml2html-converter''); // Call custom report for html output testConfig = { reportTitle: ''Test Execution Report'', outputPath: browser.reportPath, seleniumServer: ''default'', applicationUrl: browser.baseUrl, testBrowser: browser.browserName + '' v.'' + browser.browserVersion }; new HTMLReport().from(browser.reportPath + ''junitresults.xml'', testConfig); console.log("... aaaannnnd... done."); } });

Otra opción sería producir un informe HTML directamente a través de, por ejemplo, protractor-jasmine2-html-reporter .