Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

412
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda