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

193
Views
La biblioteca 'cypress-promise' no funciona como se esperaba

Tengo pruebas en las que utilicé la biblioteca cypress-promise . He incluido prometer en eso esperar hasta que se ejecuten mis comandos y dar respuesta. en mi archivo, tengo 3 bloques cuando ejecuto individualmente, se ejecuta correctamente, pero cuando ejecuto todo a la vez, primero y segundo, se cancela la API cuando la URL cambia o la URL se actualiza y la última prueba se ejecuta correctamente.

 it("visit particular employee", async ()=>{ cy.visit("/") const id = 12 const updatedEmployeeData = await cy.uploadEmployeeData().promisify(); cy.visit(`/all-employess/${updatedEmployeeData[id].employeeCode}`); cy.get('.input').type(updatedEmployeeData[id].name); }) it("visit particular employee 2", async ()=>{ cy.visit("/") const id = 13 const updatedEmployeeData = await cy.uploadEmployeeData().promisify(); cy.visit(`/all-employess/${updatedEmployeeData[id].employeeCode}`); cy.get('.input').type(updatedEmployeeData[id].name) }) it("visit particular employee", async ()=>{ cy.visit("/") const id = 14 const updatedEmployeeData = await cy.uploadEmployeeData().promisify(); cy.visit(`/all-employess/${updatedEmployeeData[id].employeeCode}`); cy.get('.input').type(updatedEmployeeData[id].name) }) in first it and second it after cy.visit(`/all-employess/${updatedEmployeeData[id].employeeCode}`); it stops executing and in third it properly executes.

No entiendo con este enfoque;

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

Como documentó la biblioteca en su página ( https://www.npmjs.com/package/cypress-promise ): ¿importó y polillenó los comandos cy?

Una alternativa es usar el polyfill de 'registro' para agregar el método promisify a todas las cadenas de Cypress. Esto requiere importar 'cypress-promise/register' en su archivo cypress/support/index

Si no, intente usar la biblioteca de la forma en que está documentada allí: await promisify(<your cypress cmd>) :

 import promisify from 'cypress-promise' it('should run tests with async/await', async () => { const foo = await promisify(cy.wrap('foo')) expect(foo).to.equal('foo') })

Si lo hizo, no puedo ayudarlo más, pero actualmente no es realmente posible leer ese hecho fuera de su pregunta.

about 4 years ago · Juan Pablo Isaza Report

0

Parece que podría adoptar un enfoque alternativo sin cypress-promisify

 beforeEach(() => { cy.visit("/") cy.uploadEmployeeData().as('updatedEmployeeData') }) it("visit particular employee", () => { cy.get('@updatedEmployeeData').then(updatedEmployeeData => { const id = 12 cy.visit(`/all-employess/${updatedEmployeeData[id].employeeCode}`); cy.get('.input').type(updatedEmployeeData[id].name); }) }) it("visit particular employee 2", () => { cy.get('@updatedEmployeeData').then(updatedEmployeeData => { const id = 13 cy.visit(`/all-employess/${updatedEmployeeData[id].employeeCode}`); cy.get('.input').type(updatedEmployeeData[id].name) }) }) it("visit particular employee", () => { cy.get('@updatedEmployeeData').then(updatedEmployeeData => { const id = 14 cy.visit(`/all-employess/${updatedEmployeeData[id].employeeCode}`); cy.get('.input').type(updatedEmployeeData[id].name) }) })

Alternativa para evitar anidados entonces.
La compensación es que debe usar la sintaxis de function() para cada it()

 beforeEach(() => { // can be before() instead of beforeEach() if data does not change cy.visit("/") cy.uploadEmployeeData().as('updatedEmployeeData') cy.uploadManagerData().as('updatedManagerData') }) it("visit particular employee", function() { // use function() form // so that "this" is defined correctly const id = 12 cy.visit(`/all-employess/${this.updatedEmployeeData[id].employeeCode}`); cy.get('.input').type(this.updatedEmployeeData[id].name); // also use this.updatedManagerData })
about 4 years ago · Juan Pablo Isaza Report

0

Descubrí que esto aún no funciona en las acciones de Github, pero funciona localmente.

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!