karma-runner/karma

Karma pseudo-reopens PhantomJS connection with asynchronous logging + captureConsole

Open

#1908 aperta il 16 feb 2016

Vedi su GitHub
 (1 commento) (1 reazione) (0 assegnatari)JavaScript (1703 fork)batch import
help wantedtype: bug

Metriche repository

Star
 (11.918 star)
Metriche merge PR
 (Nessuna PR mergiata in 30 g)

Descrizione

Our frontend code uses Bluebird, which asynchronously logs after tests are run to report unhandled rejections. Looking in Karma's karma.js, it seems these asynchronous logs are just piped down the WebSocket - even if the complete message has already been sent. Karma-side in browser.js, this info event restarts the disconnection timer, despite it having been closed down by the complete handler.

As such, Karma will hang after this happens, and after 10 seconds, a disconnection-due-to-timeout will fire, calling the Karma server's callback a second time (which, in our case, breaks Gulp).

Current workaround is to add captureConsole: false to the Karma client config, though we'd really like to see the logs as well when running via PhantomJS.

Guida contributor