I am trying to run mocha unit test for my node application. The application is built by a docker image.
Docker image:
FROM node:6.10.0-alpine
RUN mkdir -p /app
WORKDIR /app
COPY package.json /app
RUN npm install
COPY . /app
EXPOSE 3000
CMD ["npm", "start"]
Docker compose:
version: "3"
services:
web: #### nodejs image
build: .
volumes:
- ./app/
ports:
- "3000:3000"
depends_on:
- db
db:
build: ##### postgres db image
context: .
dockerfile: dbDockerfile
ports:
- 5432:5432
The setup can be built and worked as expected. The problem is not I am sure how to run unit test commands like mocha
to perform the test.
I see a module called dockunit
but I am not sure if that's the only way for now. Can anyone help me out about this?
Running tests against a browser in a Docker container through an Open Agent that is running in another Docker container. The browser and the Open Agent communicate with each other through a Docker network. The test executor is running on your local Windows machine. Running tests entirely from Docker containers.
Docker Hub can automatically test changes to your source code repositories using containers. You can enable Autotest on any Docker Hub repository to run tests on each pull request to the source code repository to create a continuous integration testing service.
With docker
(and docker-compose
), you can run arbitrary commands in a container. The Dockerfile
defines the default command that is run when no other command is specified, but that doesn't mean it's the only one you can run.
In your case: npm start
is run when no other command is specified. That happens when you do docker-compose up
.
But, you can run any command using docker run
or docker-compose run
. For your tests, that might look like this: docker-compose run web mocha
.
There is a slight difference in up
and run
, and I encourage you to read up on it: Should I use docker-compose start up or run?
Does this help you get started?
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With