2017-03-26 1 views
3

Ich versuche, Mokka Unit Test für meine Knotenanwendung auszuführen. Die Anwendung wird von einem Andock-Image erstellt.Wie installiere ich Unit-Test in Docker für Nodejs-Anwendung?

Docker Bild:

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 komponieren:

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 

Das Setup aufgebaut werden kann und arbeitete als erwartet. Das Problem ist nicht ich bin sicher, wie Unit Test Befehle wie mocha ausführen, um den Test durchzuführen.

Ich sehe ein Modul namens dockunit, aber ich bin mir nicht sicher, ob das der einzige Weg für jetzt ist. Kann mir jemand dabei helfen?

Antwort

5

Mit docker (und docker-compose) können Sie beliebige Befehle in einem Container ausführen. Die Dockerfile definiert den Standardbefehl, der ausgeführt wird, wenn kein anderer Befehl angegeben ist, aber das bedeutet nicht, dass es der einzige Befehl ist, den Sie ausführen können. In Ihrem Fall wird npm start ausgeführt, wenn kein anderer Befehl angegeben ist. Das passiert, wenn Sie docker-compose up tun.

Sie können jedoch einen beliebigen Befehl mit docker run oder docker-compose run ausführen. Für Ihre Tests könnte das wie folgt aussehen: docker-compose run web mocha.

Es gibt einen kleinen Unterschied in up und run, und ich ermutige Sie darauf zu lesen: Should I use docker-compose start up or run?

Enthält diese Hilfe Sie die ersten Schritte?

Verwandte Themen