Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

411
Vistas
Cypress: use Chance JS para generar datos y almacenar esos datos para usarlos más adelante

Esencialmente, lo que quiero hacer es generar un nombre usando ChanceJS para un caso de prueba dentro de Cypress, pero en un archivo/caso de prueba separado quiero poder recordar ese nombre que generé anteriormente para poder seleccionarlo/verificar que existe.

He reducido un poco estos fragmentos de código para que no tengan mucho sentido.

He intentado tener mi propio archivo con una constante llamada constants.js

 require('chance') export const constants = { ITEM: chance.word() }

y luego tener algo como esto en un archivo de prueba donde agrego un elemento usando el nombre aleatorio como su nombre

 import { constants } from '../constants'; //Add Item it('Add a Item', function(){ cy.pass_credentials() cy.get('.dx-datagrid-toolbar-button > .dx-button-content > .dx-icon').click({force: true}) cy.get('[id$=_Name]').type(constants.ITEM) // using my random name for the item name }

y luego trato de usarlo nuevamente para seleccionar el elemento en un archivo separado, ya que los datos que agregué en el archivo anterior ahora se usan como parte de este otro dato

 import { constants } from '../constants'; it('Add Data', function(){ cy.pass_credentials() cy.get('[id$=_TaskId]').type(constants.ITEM) //typing my random name in so I can select it as its now part of a drop making up this new piece of data cy.contains(constants.ITEM).type('{enter}') //trying to press enter so I select my item }

Pero el problema que tengo es que está generando un nuevo nombre aleatorio, lo que significa que estoy tratando de seleccionar algo que no está allí. No estoy seguro de si cada vez que lo importo en un archivo nuevo para usar, ¿eso es lo que hace que se regenere?

Supongo que me vendrían bien algunos consejos o una mejor solución a mi problema.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Una forma sería generar el elemento la primera vez y guardarlo en la variable Cypress.env() y luego usarlo durante la prueba. Se puede acceder a Cypress.env() mediante cualquier prueba y también se pasaría un valor a todas las pruebas para ese ciclo de ejecución.

 import {constants} from '../constants' //Add Item it('Add a Item', function () { Cypress.env('uniqueItem', constants.ITEM) //Random item is set for this test run cy.pass_credentials() cy.get('.dx-datagrid-toolbar-button > .dx-button-content > .dx-icon').click({ force: true, }) cy.get('[id$=_Name]').type(Cypress.env('uniqueItem')) // types in the item })

Usted prueba en el siguiente conjunto de pruebas. No necesita llamar a las declaraciones de importación aquí y usar directamente el valor usando Cypress.env('uniqueItem') .

 it('Add Data', function () { cy.pass_credentials() cy.get('[id$=_TaskId]').type(Cypress.env('uniqueItem')) cy.contains(Cypress.env('uniqueItem')).type('{enter}') })
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda