Codeceptjs Docker

# Codeceptjs Docker

CodeceptJS has an official docker image (opens new window) based on Playwright image. Image supports Playwright, Puppeteer, and WebDriver engines.

# How to Use

This image comes with the necessary dependencies and packages to execute CodeceptJS tests. Mount in your CodeceptJS config directory into the /tests directory in the docker container.

Sample mount: -v path/to/codecept.conf.js:/tests

CodeceptJS runner is available inside container as codeceptjs.

# Locally

You can execute CodeceptJS with Puppeteer locally with no extra configuration.

docker run --net=host -v $PWD:/tests codeceptjs/codeceptjs 

To customize execution call codeceptjs command:

# run tests with steps docker run --net=host -v $PWD:/tests codeceptjs/codeceptjs codeceptjs run --steps # run tests with @user in a name docker run --net=host -v $PWD:/tests codeceptjs/codeceptjs codeceptjs run --grep "@user" 

# Docker Compose

version: '2' services: codeceptjs: image: codeceptjs/codeceptjs depends_on: - firefox - web volumes: - .:/tests web: image: node command: node app/server.js volumes: - .:/app firefox: image: selenium/standalone-firefox-debug:2.53.0 ports: - '4444' - '5900' 

# Linking Containers

If using the WebDriver driver, link the container with a Selenium Standalone docker container with an alias of selenium. Additionally, make sure your codeceptjs.conf.js contains the following to allow CodeceptJS to identify where Selenium is running.

 ... helpers: { WebDriver: { ... host: process.env.HOST ... } } ... 
$ docker run -d -P --name selenium-chrome selenium/standalone-chrome # Alternatively, selenium/standalone-firefox can be used $ docker run -it --rm -v /<path_to_codeceptjs_test_dir>/:/tests/ --link selenium-chrome:selenium codeceptjs/codeceptjs 

You may run use -v $(pwd)/:tests/ if running this from the root of your CodeceptJS tests directory. Note: The output of your test run will appear in your local directory if your output path is ./output in the CodeceptJS config

# Build

To build this image:

docker build -t codeceptjs/codeceptjs . 
  • this directory will be added as /codecept insde container
  • tests directory is expected to be mounted as /tests
  • codeceptjs is a synlink to /codecept/bin/codecept.js

To build this image with your desired Node version:

docker build -t codeceptjs/codeceptjs . --build-arg NODE_VERSION=12.10.0 

# Passing Options

Options can be passed by calling codeceptjs:

docker run -v $PWD:/tests codeceptjs/codeceptjs codeceptjs run --debug 

Alternatively arguments to codecept run command can be passed via CODECEPT_ARGS environment variable. For example to run your tests with debug output:

version: '2' services: codeceptjs: image: codeceptjs/codeceptjs environment: - CODECEPT_ARGS=--debug volumes: - .:/tests 

You can also use run-workersto run tests by passing NO_OF_WORKERS, additionally, you can pass more params like showing the debug info as the following example:

version: '2' services: codeceptjs: image: codeceptjs/codeceptjs environment: - NO_OF_WORKERS=3 - CODECEPT_ARGS=--debug volumes: - .:/tests 
Last Updated: 7/21/2023, 10:37:27 AM