pa11y / pa11y-ci

Pa11y CI is a CI-centric accessibility test runner, built using Pa11y
https://pa11y.org
GNU Lesser General Public License v3.0
519 stars 63 forks source link

Implicit Dependency on `puppeteer` in `pa11y-ci` #114

Closed kkoskelin closed 4 years ago

kkoskelin commented 4 years ago

My team has had some difficulties recently with our pa11y-ci test suite, which is rather large. It seems that particularly when running within a Docker container, the tests would seem to stall (deadlock?), resulting in a large percentage of failures when concurrency was set high.

I've outlined the scenario here in this repository: https://github.com/kkoskelin/pa11y-problems

The root of the problem seemed to be that if my project had a dependency on a new-ish version of puppeteer (^4.1.0 in my case), these failures would occur; removing this dependency resolved the issues.

An individual present in the pa11y slack helped me identify the likely culprit today (thanks, Thibaud!): https://pa11y.slack.com/archives/C16MP57QT/p1596034883064700

Puppeteer is required by this file: lib/pa11y-ci.js#L13 but it is not explicitly listed in the dependencies of package.json

It might be helpful if the pa11y-lint-config library were updated to include the eslint-plugin-implicit-dependencies to detect this in the future.