docker - 如何将 cypress 添加到我当前的 docker 中?

标签 docker vue.js docker-compose cypress

我有一个 docker-compose.yml 文件:

version: '2'

services:
  web:
    build: .
    command: npm run dev
    volumes:
      - .:/usr/app
      - /usr/app/node_modules
    ports:
      - "8080:8080"
    expose:
      - "8080"

还有一个 Dockerfile

FROM node:7.7.2-alpine

WORKDIR /usr/app

COPY package.json .

RUN npm install --quiet

COPY . .

现在我想通过运行添加 cypress ( https://www.cypress.io/ ) 来运行测试:

npm install --save-dev cypress

但也许它不起作用,因为我看不到 cypress 文件夹。

安装cypress后,我运行

/node_module/.bin/cypress open

我看不到柏树打开。

所以现在我不知道如何将 cypress 添加到我的 docker 以通过 cypress 在我的主机上运行测试。

最佳答案

如果您使用的是 docker-compose,更简洁的解决方案是仅使用一个单独的专用 Cypress Docker 容器,因此您的 docker-compose.yml 变为:

version: '2'
services:
  web:
    build: .
    entrypoint: npm run dev
    volumes:
      - .:/usr/app
      - /usr/app/node_modules
    ports:
      - "8080:8080"
  cypress:
    image: "cypress/included:3.2.0"
    depends_on:
      - web
    environment:
      - CYPRESS_baseUrl=http://web:8080
    working_dir: /e2e
    volumes:
      - ./:/e2e

e2e 目录应该包含您的 cypress.json 文件和您的 integration/spec.js 文件。您的 package.json 文件根本不必包含 Cypress,因为它已融入 Cypress Docker 镜像 (cypress/included)。

有关更多详细信息,我写了一篇关于将 Docker Compose 与 Cypress 结合使用的综合教程:

关于docker - 如何将 cypress 添加到我当前的 docker 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49103766/

相关文章:

linux - tensorflow docker gpu 图像未检测到我的 GPU

MongoDB Docker 容器 : ERROR: Cannot write pid file to/tmp/tmp. aLmNg7ilAm:设备上没有剩余空间

javascript - 将值从组件中的mapActions传递到vuex存储

docker - 如何在使用 Docker Compose 的同时高效地重建 go 项目?

docker-compose 目录以在路径中构建

docker - LogStash 无法从许可证中检索许可证信息。响应代码 '401' 通过 URL 'http://elasticsearch:9200/_xpack' 联系 Elasticsearch

php - PHP-FPM不会从Dockerfile开始

vue.js - 在 Vue 应用程序中导入全局 scss 样式以及单独的 mixin 和变量 scss 文件

javascript - 如何为使用 Vuex 存储的 Vue 表单组件编写 Jest 单元测试?

docker - docker swarm撰写约束