Skip to content
Docker image with Puppeteer (headless Google Chrome) and Jest test runner.
JavaScript
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.idea ADDED .dockerignore. UPDATED Dockerfile to NOT used globally installe… Mar 14, 2018
tests UPDATED google and twitter demo tests as target application DOMs have… May 1, 2018
.babelrc INIT commit. Mar 9, 2018
.dockerignore ADDED .dockerignore. UPDATED Dockerfile to NOT used globally installe… Mar 14, 2018
.gitignore
Dockerfile Use node:slim as base and use newer Chrome version. Jun 20, 2018
Readme.md Update Readme.md Apr 18, 2018
package-lock.json
package.json

Readme.md

Docker + Puppeteer + Jest

Browser testing using Chrome, no need to install stuff on your machine, it's in the image! Just make your test files and go.

Based on the article available at end-end-tests-dont-suck-puppeteer and here User Interface Testing with Jest and Puppeteer.

Assumptions

  • This is of acceptance/end-to-end/user testing. Not functional or unit; it may work, but is not the main goal.
  • Puppeteer expect test files to be named in the format *.spec.js
  • You have a Jest test suite already, ([an example suite is available from the source repository](git clone https://github.com/davidjeddy/docker_puppeteer_jest) if needed for examples).
  • Understand docker run ... --rm executes a task then terminates.

Usage

Pull Image from hub.docker.com

docker pull davidjeddy/docker_puppeteer_jest

Run the image

docker run -t -v $(pwd)/DIR/PATH/TO/YOUR/JEST/TESTS:/app/tests --name dpj --rm davidjeddy/docker_puppeteer_jest

That is it! 🥓

You should now have test output results in the CLI output, as well as screen captures saved to $(pwd)/DIR/PATH/TO/YOUR/JEST/TESTS/_output/ .

Extra

If you get the error Async callback was not invoked withing the 5000ms timout specified by jest.setTimeout, refer to the Jest documention for how to adjust timeout as needed.

Troubleshooting

The Google Chrome teams offers some assistance when using Puppetter over on thier GitHub project page.

You can’t perform that action at this time.