Awesome
testcafe-browser-provider-puppeteer
This is the puppeteer/chromium browser provider plugin for TestCafe. It allows to run tastcafe e2e tests headless in CI pipeline without any external dependency like xvfb, since everything what is needed is installed via npm.
Install
npm install --save-dev testcafe-browser-provider-puppeteer
Usage
When you run tests from the command line, use the provider name when specifying browsers:
testcafe puppeteer 'path/to/test/file.js'
When you use API, pass the provider name to the browsers()
method:
testCafe
.createRunner()
.src('path/to/test/file.js')
.browsers('puppeteer')
.run();
Device Emulation
If you want to emulate another device you can run pupeteer:emulate=<Device name>
. The supported devices are listed in the Puppeteer DeviceDescriptors.
Troubleshooting
On same older linux distributions, fails chromium due to sandbox issues - see this.
You can try in such case running the plugin without sandbox restriction
testcafe puppeteer:no_sandbox 'path/to/test/file.js'
In order to speedup CI you can provide custom executable of chromium browser instead to download it all the time:
runner
.browsers(['puppeteer:no_sandbox?/usr/bin/chromium-browser'])
runner
.browsers(['puppeteer:?/usr/bin/chromium-browser'])
Author
Jacek Dobosz
Contributors
Lukasz Szmit
Pedro Scaff
Bhavdeep Dhanjal