[英]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.