After switching from PhantomJs to Chrome in headless mode for our Angular tests, our tests started to behave flaky with sometimes success and sometimes failure. When the tests failed, we saw the following error message in the logs:
[32m28 08 2018 10:41:44.851:INFO [HeadlessChrome 68.0.3440 (Windows 7.0.0)]: [39mConnected on socket W4CI4bKonF845CKZAAAA with id 22875346
2018-08-28T08:41:54.8669569Z [33m28 08 2018 10:41:54.860:WARN [HeadlessChrome 68.0.3440 (Windows 7.0.0)]: [39mDisconnected (1 times), because no message in 10000 ms.
2018-08-28T08:41:54.8864889Z HeadlessChrome 68.0.3440 (Windows 7.0.0) ERROR
2018-08-28T08:41:54.8864889Z Disconnected, because no message in 10000 ms.
2018-08-28T08:41:54.8874655Z HeadlessChrome 68.0.3440 (Windows 7.0.0) ERROR
2018-08-28T08:41:54.8874655Z Disconnected, because no message in 10000 ms.
2018-08-28T08:41:54.8874655Z
To fix it, we changed the default Karma settings to a more fault tolerant configuration.Therefore we opened up the karma.conf.js file and added the following 2 settings:
- browserDisconnectTolerance: 2, // maximum number of tries a browser will attempt in the case of a disconnection
- browserNoActivityTimeout: 50000, // How long will Karma wait for a message from a browser before disconnecting from it (in ms).
Here is our complete karma.conf.js file: