En una de mis pruebas de automatización, estoy importando un formato de fecha almacenado en los parámetros del entorno, lo uso para mi prueba y luego lo incremento en un segundo después de ejecutar la prueba. Este es el código:
afterEach(()=>{ var startTimeStamp = Cypress.env('aestartTimestamp'); var startTimestampString = String(startTimeStamp); var epochStartTimeStamp = new Date(startTimestampString); var startYear = epochStartTimeStamp.getFullYear(); var month = (epochStartTimeStamp.getMonth())+1; var realStartMonth = month <=9 ? '0'+month:month; var startDate = epochStartTimeStamp.getDate()<=9 ? '0'+epochStartTimeStamp.getDate():epochStartTimeStamp.getDate(); var startHours = epochStartTimeStamp.getHours() <=9 ? '0'+epochStartTimeStamp.getHours():epochStartTimeStamp.getHours(); var startMinutes = epochStartTimeStamp.getMinutes() <=9 ? '0'+epochStartTimeStamp.getMinutes():epochStartTimeStamp.getMinutes(); var startSeconds = (epochStartTimeStamp.getSeconds()+1)<=9? '0'+(epochStartTimeStamp.getSeconds()+1):(epochStartTimeStamp.getSeconds()+1); var newStartTimeStamp = startYear+"-"+realStartMonth+"-"+startDate+" "+startHours+":"+startMinutes+":"+startSeconds; Cypress.env('aestartTimestamp',newStartTimeStamp); console.log(newStartTimeStamp); var endTimeStamp = Cypress.env('aeendTimestamp'); var endTimeStampString = String(endTimeStamp); var epochEndTimeStamp = new Date(endTimeStampString); var endYear = epochEndTimeStamp.getFullYear(); var endMonth = (epochEndTimeStamp.getMonth())+1; var realEndMonth = endMonth <=9 ? '0'+endMonth:endMonth; var endDate = epochEndTimeStamp.getDate()<=9 ? '0'+epochEndTimeStamp.getDate():epochEndTimeStamp.getDate(); var endHours = epochEndTimeStamp.getHours() <=9 ? '0'+epochEndTimeStamp.getHours():epochEndTimeStamp.getHours(); var endMinutes = epochEndTimeStamp.getMinutes() <=9 ? '0'+epochEndTimeStamp.getMinutes():epochEndTimeStamp.getMinutes(); var endSeconds = (epochEndTimeStamp.getSeconds()+1) <=9 ? '0'+(epochEndTimeStamp.getSeconds()+1):(epochEndTimeStamp.getSeconds()+1); var newEndTimestamp = endYear+"-"+realEndMonth+"-"+endDate+" "+endHours+":"+endMinutes+":"+endSeconds; Cypress.env('aeendTimeStamp',newEndTimestamp); console.log(newEndTimestamp); })Sin embargo, después de ejecutar las pruebas, la fecha se convierte a NaN. Esto es lo que veo en la consola:
La marca de tiempo se convierte a NaN.
Cuando ejecuto el código de forma independiente en cualquier consola del navegador, veo que el código funciona perfectamente. (La nueva marca de tiempo se incrementa en 1 segundo).
Así que estoy desconcertado en cuanto a por qué el código funciona correctamente en la consola de desarrollo pero no en Cypress. Prueba. ¿Falta algo?