使用mongodb和redis在docker-compose中运行玩笑测试

纳坦·迪奇(Natan Deitch)

我有一个使用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,并得到了相同的错误。

Nischay Goyal

如您所见,request模块也不是依赖项的一部分devDependencies,请运行

npm install request --production

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

玩笑测试中的玩笑和Bower模块加载

来自分类Dev

使用Chutzpah运行JS测试时找不到玩笑参考

来自分类Dev

开玩笑-在测试中重复使用对象

来自分类Dev

使用docker运行Redis master和哨兵的问题

来自分类Dev

如何使用docker-compose.yml在Docker上运行Redis?

来自分类Dev

使用 docker compose 运行单个测试函数

来自分类Dev

使用Jenkins在Docker容器中运行测试

来自分类Dev

VS Code使用docker-compose在Docker中运行和调试Python

来自分类Dev

如何在docker compose中运行mongodb副本集

来自分类Dev

如何使用玩笑测试 objectContaining?

来自分类Dev

在 docker-compose 图像上运行 mocha 单元测试

来自分类Dev

使用mysql和自己的docker容器运行docker-compose

来自分类Dev

何时使用单元测试或快照测试与玩笑和酶?

来自分类Dev

在docker-compose.yml中运行命令

来自分类Dev

使用Docker和Jenkins运行测试-测试结果

来自分类Dev

直接在Intellij Idea / WebStorm中运行玩笑测试吗?

来自分类Dev

Gitlab CI:如何使用 docker 和 shell runner 在管道中运行测试

来自分类Dev

开玩笑,jQuery和获取测试文件

来自分类Dev

是否可以在docker中运行流星测试?

来自分类Dev

在Docker Windows中运行Django测试

来自分类Dev

在Docker容器中运行cypress测试?

来自分类Dev

如何在 docker 中运行 Spectron 测试?

来自分类Dev

测试无法使用Spring WebFlux和Reactive MongoDB运行

来自分类Dev

使用Maven在gitlab中运行(Docker)测试容器

来自分类Dev

使用MongoDb和卷进行docker-compose-似乎未安装

来自分类Dev

将 docker-compose 与 mongodb、node 和 postman 一起使用的正确方法是什么?

来自分类Dev

如何使用docker-compose在mongodb中创建用户

来自分类Dev

IntelliJ中的运行单元和集成测试

来自分类Dev

无法使用testNG和Allure在TeamCity中从Maven运行测试

Related 相关文章

  1. 1

    玩笑测试中的玩笑和Bower模块加载

  2. 2

    使用Chutzpah运行JS测试时找不到玩笑参考

  3. 3

    开玩笑-在测试中重复使用对象

  4. 4

    使用docker运行Redis master和哨兵的问题

  5. 5

    如何使用docker-compose.yml在Docker上运行Redis?

  6. 6

    使用 docker compose 运行单个测试函数

  7. 7

    使用Jenkins在Docker容器中运行测试

  8. 8

    VS Code使用docker-compose在Docker中运行和调试Python

  9. 9

    如何在docker compose中运行mongodb副本集

  10. 10

    如何使用玩笑测试 objectContaining?

  11. 11

    在 docker-compose 图像上运行 mocha 单元测试

  12. 12

    使用mysql和自己的docker容器运行docker-compose

  13. 13

    何时使用单元测试或快照测试与玩笑和酶?

  14. 14

    在docker-compose.yml中运行命令

  15. 15

    使用Docker和Jenkins运行测试-测试结果

  16. 16

    直接在Intellij Idea / WebStorm中运行玩笑测试吗?

  17. 17

    Gitlab CI:如何使用 docker 和 shell runner 在管道中运行测试

  18. 18

    开玩笑,jQuery和获取测试文件

  19. 19

    是否可以在docker中运行流星测试?

  20. 20

    在Docker Windows中运行Django测试

  21. 21

    在Docker容器中运行cypress测试?

  22. 22

    如何在 docker 中运行 Spectron 测试?

  23. 23

    测试无法使用Spring WebFlux和Reactive MongoDB运行

  24. 24

    使用Maven在gitlab中运行(Docker)测试容器

  25. 25

    使用MongoDb和卷进行docker-compose-似乎未安装

  26. 26

    将 docker-compose 与 mongodb、node 和 postman 一起使用的正确方法是什么?

  27. 27

    如何使用docker-compose在mongodb中创建用户

  28. 28

    IntelliJ中的运行单元和集成测试

  29. 29

    无法使用testNG和Allure在TeamCity中从Maven运行测试

热门标签

归档