Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

410
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!