mongodb 및 redis를 사용하여 docker-compose에서 jest 테스트 실행

나탄 데이 치

mongodb 및 redis를 사용하는 응용 프로그램이 있습니다.

docker-compose에서 테스트를 실행하고 싶지만 테스트를 실행할 때마다 다음 오류가 발생합니다.

명령: docker-compose -p tests run --rm main npm run test

오류:

 FAIL  test/content/document/content.document.test.ts
  ● Test suite failed to run

    Cannot find module 'request'

      at node_modules/request-promise-native/lib/rp.js:8:12
      at module.exports (node_modules/stealthy-require/lib/index.js:62:23)
      at Object.<anonymous> (node_modules/request-promise-native/lib/rp.js:7:15)

설치를 시도 request했지만 성공하지 못했습니다.

테스트는 docker-compose없이 성공적으로 로컬에서 실행됩니다.

docker-compose.yml :

version: '3.7'

services:
  main:
    build:
      context: .
      target: development
    volumes:
      - .:/usr/src/app
      - /usr/src/app/node_modules
    ports:
      - 8080:8080
    command: npm run start:dev
    networks:
      - webnet
    depends_on:
      - redis
      - mongodb

  redis:
    container_name: redis
    image: redis:5
    networks:
      - webnet

  mongodb:
    container_name: mongodb
    environment:
      - MONGO_INITDB_DATABASE=database
      - MONGO_INITDB_ROOT_USERNAME=username
      - MONGO_INITDB_ROOT_PASSWORD=password
    image: mongo:4.2.6
    restart: always
    networks:
      - webnet
    ports:
      - '27017:27017'

networks:
  webnet:

Dockerfile :

# https://blog.logrocket.com/containerized-development-nestjs-docker/

FROM node:10.20.1-alpine3.11 As development

WORKDIR /usr/src/app

COPY package*.json ./

RUN npm install --only=development

COPY . .

RUN npm run build

FROM node:10.20.1-alpine3.11 as production

ARG NODE_ENV=production
ENV NODE_ENV=${NODE_ENV}

WORKDIR /usr/src/app

ENV PORT=8080

COPY package*.json ./

RUN npm install --only=production

COPY . .

COPY --from=development /usr/src/app/dist ./dist

CMD ["node", "dist/main"]

package.json

{
  "name": "jest-docker",
  "version": "0.0.1",
  "private": true,
  "description": "",
  "license": "MIT",
  "author": "",
  "main": "dist/main.js",
  "scripts": {
    "prebuild": "rimraf dist",
    "build": "nest build",
    "build:docker": "docker build -t paperbot .",
    "deploy": "npm run build && gcloud app deploy --quiet",
    "docker": "PORT=8080 docker-compose up --build --rm -V",
    "start": "NODE_PATH=. npm run start:prod",
    "start:dev": "PORT=8080 NODE_PATH=. nest start --watch",
    "start:prod": "NODE_PATH=. node dist/main.js",
    "test": "NODE_PATH=. ts-node ./dck",
    "test:docker": "docker-compose -p tests run --rm main npm run test"
  },
  "dependencies": {
    "@nestjs/bull": "^0.1.1",
    "@nestjs/common": "^6.11.11",
    "@nestjs/config": "^0.4.2",
    "@nestjs/core": "^6.11.11",
    "@nestjs/cqrs": "^7.0.0",
    "@nestjs/platform-express": "^6.11.11",
    "@slack/bolt": "^2.1.1",
    "bull": "^3.14.0",
    "class-transformer": "^0.2.3",
    "class-validator": "^0.12.2",
    "embedly": "^2.1.1",
    "express": "^4.17.1",
    "js-video-url-parser": "^0.4.1",
    "mongodb": "^3.5.8",
    "node-nlp": "^4.4.0",
    "raw-body": "^2.4.1",
    "reflect-metadata": "^0.1.12",
    "rxjs": "^6.5.5",
    "tsscmp": "^1.0.6",
    "unfluff": "^3.2.0"
  },
  "devDependencies": {
    "@nestjs/cli": "^7.2.0",
    "@nestjs/testing": "^6.11.11",
    "@release-it/conventional-changelog": "^1.1.4",
    "@testdeck/jest": "^0.1.0",
    "@types/bull": "^3.13.0",
    "@types/express": "^4.17.6",
    "@types/jest": "^23.3.13",
    "@types/mongodb": "^3.5.18",
    "@types/node": "^10.17.24",
    "@types/qs": "^6.9.3",
    "@types/supertest": "^2.0.9",
    "@types/tsscmp": "^1.0.0",
    "@typescript-eslint/eslint-plugin": "^3.0.2",
    "@typescript-eslint/parser": "^3.0.2",
    "concurrently": "^4.1.2",
    "dockest": "^2.0.2",
    "eslint": "^7.1.0",
    "eslint-config-prettier": "^6.11.0",
    "eslint-plugin-import": "^2.20.2",
    "eslint-plugin-json-format": "^2.0.1",
    "eslint-plugin-prettier": "^3.1.3",
    "jest": "^26.0.1",
    "jest-sonar-reporter": "^2.0.0",
    "prettier": "^1.19.1",
    "release-it": "^13.6.1",
    "rimraf": "^2.7.1",
    "supertest": "^3.4.1",
    "ts-jest": "^26.0.0",
    "ts-node": "8.1.0",
    "tsconfig-paths": "3.8.0",
    "typescript": "^3.9.3"
  },
  "engines": {
    "node": ">=10.0.0"
  },
  "jestSonar": {
    "reportPath": "coverage",
    "reportFile": "test-reporter.xml",
    "indent": 2
  }
}

Dockest로도 시도했지만 동일한 오류가 발생했습니다.

니 샤이 고얄

당신이 볼 수 있듯이, request모듈뿐만 아니라 의존성의 일부가 아닌 devDependencies, 실행하십시오

npm install request --production

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

docker compose에서 mongodb 복제 세트를 실행하는 방법

분류에서Dev

Gitlab CI : Docker 및 Shell Runner를 사용하여 파이프 라인에서 테스트를 실행하는 방법

분류에서Dev

Jest 및 Testbed를 사용하여 Angular 9 서비스 테스트

분류에서Dev

Docker 및 Capybara를 사용하여 호스트에서 셀레늄 실행

분류에서Dev

Docker를 사용하여 Redis 마스터 및 센티넬 실행 문제

분류에서Dev

MacBookPro 호스트를 사용하여 Docker 컨테이너에서 GUI 앱 실행

분류에서Dev

Jest를 사용하여 Nodejs에서 uncaughtException 및 unhandledRejection 단위 테스트 방법

분류에서Dev

authcontext ()에서 jest / RTL로 테스트를 실행하는 방법

분류에서Dev

Docker 컨테이너에서 jhipster 및 sonar를 사용하여 mvn sonar : sonar를 실행하는 방법

분류에서Dev

Spring WebFlux 및 Reactive MongoDB를 사용하여 테스트가 실행되지 않습니다.

분류에서Dev

docker-compose.yml을 사용하여 Docker에서 Redis를 실행하는 방법은 무엇입니까?

분류에서Dev

VSCode의 여러 위치에서 jest 테스트를 실행하는 방법

분류에서Dev

Docker Compose를 사용하여 백그라운드에서 우분투 컨테이너 실행

분류에서Dev

testNG 및 Allure를 사용하여 TeamCity의 Maven에서 테스트를 실행할 수 없습니다.

분류에서Dev

Maven을 사용하여 gitlab에서 (Docker) 테스트 컨테이너 실행

분류에서Dev

Vagrant 및 rsync를 사용하여 게스트 VM에서 Composer를 실행하면

분류에서Dev

MySQL 컨테이너가 Docker Compose에서 초기화 스크립트를 실행하지 못함

분류에서Dev

Chutzpah를 사용하여 Typescript에서 Jasmine 테스트 실행

분류에서Dev

arg를 사용하여 코드에서 테스트 실행

분류에서Dev

터미널에서 작동하더라도 Flask 및 Flask Migrate를 사용하여 Docker에서 진입 점 스크립트를 실행할 수 없습니다.

분류에서Dev

Jest 및 Enzyme을 사용하여 ui-material TextField에 대한 onChange를 테스트하는 방법

분류에서Dev

웹 서버, redis 및 mongodb를 어떤 사용자로 실행해야합니까?

분류에서Dev

docker-compose를 사용하여 Apache 펄서 실행

분류에서Dev

boot2docker를 사용하여 컨테이너로 실행중인 redis에 연결할 수 없습니다.

분류에서Dev

Eclipse에서 실행 도구> SWTBot 테스트를 사용하여 JUnit 5 테스트를 실행하는 방법

분류에서Dev

Docker 컨테이너에서 Cypress 테스트를 실행 하시겠습니까?

분류에서Dev

docker-compose를 사용하여 이미 실행중인 컨테이너를 내 앱에 연결하는 방법

분류에서Dev

Docker를 사용하여 Windows 컨테이너에서 exe 파일 실행

분류에서Dev

aws-sdk를 사용하여 Docker 컨테이너에서 노드 앱 실행

Related 관련 기사

  1. 1

    docker compose에서 mongodb 복제 세트를 실행하는 방법

  2. 2

    Gitlab CI : Docker 및 Shell Runner를 사용하여 파이프 라인에서 테스트를 실행하는 방법

  3. 3

    Jest 및 Testbed를 사용하여 Angular 9 서비스 테스트

  4. 4

    Docker 및 Capybara를 사용하여 호스트에서 셀레늄 실행

  5. 5

    Docker를 사용하여 Redis 마스터 및 센티넬 실행 문제

  6. 6

    MacBookPro 호스트를 사용하여 Docker 컨테이너에서 GUI 앱 실행

  7. 7

    Jest를 사용하여 Nodejs에서 uncaughtException 및 unhandledRejection 단위 테스트 방법

  8. 8

    authcontext ()에서 jest / RTL로 테스트를 실행하는 방법

  9. 9

    Docker 컨테이너에서 jhipster 및 sonar를 사용하여 mvn sonar : sonar를 실행하는 방법

  10. 10

    Spring WebFlux 및 Reactive MongoDB를 사용하여 테스트가 실행되지 않습니다.

  11. 11

    docker-compose.yml을 사용하여 Docker에서 Redis를 실행하는 방법은 무엇입니까?

  12. 12

    VSCode의 여러 위치에서 jest 테스트를 실행하는 방법

  13. 13

    Docker Compose를 사용하여 백그라운드에서 우분투 컨테이너 실행

  14. 14

    testNG 및 Allure를 사용하여 TeamCity의 Maven에서 테스트를 실행할 수 없습니다.

  15. 15

    Maven을 사용하여 gitlab에서 (Docker) 테스트 컨테이너 실행

  16. 16

    Vagrant 및 rsync를 사용하여 게스트 VM에서 Composer를 실행하면

  17. 17

    MySQL 컨테이너가 Docker Compose에서 초기화 스크립트를 실행하지 못함

  18. 18

    Chutzpah를 사용하여 Typescript에서 Jasmine 테스트 실행

  19. 19

    arg를 사용하여 코드에서 테스트 실행

  20. 20

    터미널에서 작동하더라도 Flask 및 Flask Migrate를 사용하여 Docker에서 진입 점 스크립트를 실행할 수 없습니다.

  21. 21

    Jest 및 Enzyme을 사용하여 ui-material TextField에 대한 onChange를 테스트하는 방법

  22. 22

    웹 서버, redis 및 mongodb를 어떤 사용자로 실행해야합니까?

  23. 23

    docker-compose를 사용하여 Apache 펄서 실행

  24. 24

    boot2docker를 사용하여 컨테이너로 실행중인 redis에 연결할 수 없습니다.

  25. 25

    Eclipse에서 실행 도구> SWTBot 테스트를 사용하여 JUnit 5 테스트를 실행하는 방법

  26. 26

    Docker 컨테이너에서 Cypress 테스트를 실행 하시겠습니까?

  27. 27

    docker-compose를 사용하여 이미 실행중인 컨테이너를 내 앱에 연결하는 방법

  28. 28

    Docker를 사용하여 Windows 컨테이너에서 exe 파일 실행

  29. 29

    aws-sdk를 사용하여 Docker 컨테이너에서 노드 앱 실행

뜨겁다태그

보관