It takes a long time to finish the process after testing

Aperta
#4,294 3 commenti 2 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
25/100
Tipo di issue
Bug
Chiarezza
Da chiarire
Stato di attività
Ferma
Stack tecnologico
javascript, node.js
Ambito
testing-qa

Direzione di ricerca

Inizia riproducendo il ritardo con la configurazione CodeceptJS fornita e l'output di --verbose, concentrandoti sull'helper di Puppeteer e sul teardown hook. Confronta le esecuzioni che terminano rapidamente con quelle che rimangono attive dopo “finished teardown hook”; un'esecuzione è considerata conclusa quando il processo di test termina prontamente sia per i test superati sia per quelli falliti.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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))
    }
  },

}
Lingua principale
JavaScript
Stelle
4.2k
Fork
756
Merge medio
2g 9h
PR unite (30g)
16

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di codeceptjs/CodeceptJS

Tutte le issue di codeceptjs/CodeceptJS

Issue simili

Altre issue su JavaScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.