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

82
Views
Limpieza de desintoxicación en la carrera de pepino

Estoy usando detox con pepino y la configuración funciona muy bien hasta el último momento de llamar a los ganchos de AfterAll. En el gancho hago lo siguiente:

 AfterAll(async () => { console.log('CLEANING DETOX'); await detox.cleanup(); });

Para ejecutar Cucumber, uso el siguiente script de package.json :

 "bdd": "cucumber-js --require-module @babel/register",

El problema ocurre cuando interrumpo la ejecución del pepino por cualquier motivo. El gancho AfterAll no se ejecutará en este caso y la desintoxicación no borrará sus archivos obsoletos. Lo cual no sería un problema, pero la desintoxicación está usando el archivo ~/Library/Detox/device.registry.state.lock para rastrear qué simuladores está utilizando el corredor. Esencialmente, esto conduce a la desintoxicación lanzando constantemente nuevos dispositivos simuladores ya que este archivo nunca se borra. Pensé que podría crear un script de envoltura simple:

 const { execSync } = require('child_process'); const detox = require('detox'); const stdout = execSync('cucumber-js --require-module @babel/register'); process.on('SIGINT', async function () { console.log('Cleanig up detox'); await detox.cleanup(); }); console.log(stdout);

Sin embargo, eso tampoco funcionó, ya que detox.cleanup() solo elimina el archivo cuando tiene la configuración de detox.device . Lo que sucede en el gancho BeforeAll :

 BeforeAll({ timeout: 120 * 1000 }, async () => { const detoxConfig = { selectedConfiguration: 'ios.debug2' }; // console.log('CONFIG::', detoxConfig); await detox.init(detoxConfig); await detox.device.launchApp(); });

La única idea que me queda es borrar manualmente el archivo. De alguna manera, debería poder obtener la ruta del archivo de bloqueo desde la desintoxicación interna. Mi preocupación acerca de este enfoque es una fuerte dependencia de la implementación de la desintoxicación. Por eso prefiero llamar a detox.cleanup .

EDITAR: terminé haciendo esta solución por ahora:

 BeforeAll({ timeout: 120 * 1000 }, async () => { await startDetox(); }); async function startDetox() { const detoxConfig = { selectedConfiguration: 'ios.debug' }; const lockFile = getDeviceLockFilePathIOS(); unlink(lockFile, (err) => { if (err) { console.debug('Lock file was not deleted:::', err); } }); await detox.init(detoxConfig); await detox.device.launchApp(); }

¿Me pregunto si alguien tiene una idea mejor?

about 4 years ago · Juan Pablo Isaza
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!