簡體   English   中英

如何將 cypress 添加到我當前的 docker 中?

[英]How to add cypress into my current docker?

我有一個 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/來運行測試

nmp install --save-dev cypress

但也許它不起作用,因為我看不到 cypress 文件夾。

安裝cypress后,我運行

/node_module/.bin/cypress open

我看不到柏樹開放。

所以現在我不知道如何將 cypress 添加到我的 docker 以通過 cypress 在我的主機上運行測試。

請幫幫我,謝謝。

如果您使用 docker-compose,更docker-compose.yml解決方案是使用單獨的、專用的 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 ) 中。

有關更多詳細信息,我寫了一篇關於在 Cypress 中使用 Docker Compose 的綜合教程:

使用類似的設置遇到類似的問題

我臨時修復它的方法是手動進入包含我的node_modules文件夾並運行node_modules/.bin/install文件夾,從那里你應該可以用node_modules/.bin/open$(npm bin)/cypress open打開它$(npm bin)/cypress open

嘗試在我的 docker-compose 上設置一個單獨的 cypress 容器

cypress:
    build:
        context: .
        dockerfile: docker/cypress
    depends_on:
        - node
    volumes:
        - .:/code

dockerfile 是 Cypress 的預構建 docker-container

能夠讓docker-compose exec cypress node_modules/.bin/cypress verify工作,但是當我嘗試打開 Cypress 時它只是掛起。

希望這對 OP 有所幫助,但希望有人能提供更具體的答案,以幫助我們通過 docker 完全運行 Cypress

您還可以在 docker hub 上使用現有的 cypress 映像並在 docker compose 中構建它。 我個人避免直接在 compose 中添加它,我為 cypress 創建了一個單獨的 docker 文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM