It takes a long time to finish the process after testing

Abierto
#4,294 3 comentarios 2 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
25/100
Tipo de issue
Error
Claridad
Necesita aclaración
Estado de actividad
Estancado
Stack tecnológico
javascript, node.js
Área
testing-qa

Línea de trabajo

Comienza reproduciendo el retraso con la configuración de CodeceptJS proporcionada y la salida de --verbose, centrándote en el helper de Puppeteer y el hook de teardown. Compara las ejecuciones que terminan rápidamente con aquellas que siguen después de “finished teardown hook”; se considera que una ejecución ha terminado cuando el proceso de pruebas sale rápidamente tanto para las pruebas correctas como para las que fallan.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

stale
What are you trying to achieve?

I'm trying to run a test.

What do you get instead?

After running the test, codecept takes a long time to quit the process. It does not matter if the test succeeds or fails. After the test runs are finished, it just stays at OK in ... or finished teardown hook with --verbose. This happens randomly, sometimes finishing fast, but more often lasting up to several minutes.

Provide console output if related. Use --verbose mode for more details.

  ✔ OK in 12663ms

    --- STARTED "after each" hook: After for "Scenario1" ---
    Emitted | provisioning.user.removed ([object Object])
    Emitted | provisioning.user.removed ([object Object])
    --- ENDED "after each" hook: After for "Scenario1" ---

  OK  | 1 passed   // 16s
    started teardown hook
    Emitted | provisioning.context.removed ([object Object])
    finished teardown hook


✨  Done in 316.64s.

Provide test source code if related
Happens randomly to all tests.

Details
  • CodeceptJS version: v3.5.3
  • NodeJS Version: v21.6.2
  • Operating System: Sonoma 14.2.1
  • puppeteer version: 20.8.2
  • Configuration file:
    (cut sensitive data)
module.exports.config = {
  tests: './tests/**/*_test.js',
  timeout: 90,
  output: './output/',
  helpers: {
    Puppeteer: {
      url: process.env.LAUNCH_URL,
      smartWait: 1000,
      waitForTimeout: Number(process.env.WAIT_TIMEOUT),
      browser: 'chrome',
      restart: true,
      windowSize: '1280x1024',
      uniqueScreenshotNames: true,
      timeouts: {
        script: 5000
      },
      chrome: {
        executablePath: process.env.CHROME_BIN,
        args: [
          '--disable-crash-reporter',
          '--disable-dev-shm-usage',
          '--disable-features=IsolateOrigins',
          '--disable-gpu',
          '--disable-notifications', // to disable native notification window on Mac OS,
          '--disable-print-preview',
          '--disable-setuid-sandbox',
          '--disable-site-isolation-trials',
          '--disable-web-security',
          process.env.HEADLESS === 'false' ? '' : `--headless=${process.env.HEADLESS}`,
          '--no-first-run',
          '--no-sandbox',
          '--no-zygote',
            `--unsafely-treat-insecure-origin-as-secure=${process.env.LAUNCH_URL}`
        ].concat((process.env.CHROME_ARGS || '').split(' '))
      },
      show: process.env.HEADLESS === 'false' || 'new',
      waitForNavigation: ['domcontentloaded', 'networkidle0']
    },
    MockRequestHelper: {
      require: '@codeceptjs/mock-request'
    }
  },
  async teardown () {
    const { contexts } = global.inject()
    for (const ctx of contexts.filter(ctx => ctx.id > 100)) {
      if (ctx.id !== 10) await ctx.remove().catch(e => console.error(e.message))
    }
  },

}
Lenguaje dominante
JavaScript
Estrellas
4.2k
Forks
756
Merge medio
2 d 9 h
PR fusionados (30 d)
16

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de codeceptjs/CodeceptJS

Todos los issues de codeceptjs/CodeceptJS

Issues similares

Más issues de JavaScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.