karma-runner / karma-runner/karma
Karma pseudo-reopens PhantomJS connection with asynchronous logging + captureConsole
- Dominant language
- JavaScript
- Stars
- 12k
- Forks
- 1.7k
- PR merge metrics
- No merged PRs in 30d
Description
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.
Contributor guide
Assessment
This issue has not been assessed yet.