# 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-workers
to 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