我正在尝试在docker容器中运行cypress测试。我简化了设置,因此可以尝试运行一个简单的容器实例并执行一些测试。
我正在使用docker-compose
version: '2.1'
services:
e2e:
image: test/e2e:v1
command: ["./node_modules/.bin/cypress", "run", "--spec", "integration/mobile/all.js"]
build:
context: .
dockerfile: Dockerfile-cypress
container_name: cypress
network_mode: host
和我的Dokerfile柏树
FROM cypress/browsers:chrome69
RUN mkdir /usr/src/app
WORKDIR /usr/src/app
RUN npm install cypress@3.1.0
COPY cypress /usr/src/app/cypress
COPY cypress.json /usr/src/app/cypress
RUN ./node_modules/.bin/cypress verify
建立图片后,我运行docker-compose up
时看到
cypress | name_to_handle_at on /dev: Operation not permitted
cypress | Can't run because no spec files were found.
cypress |
cypress | We searched for any files matching this glob pattern:
cypress |
cypress | integration/mobile/all-control.js
cypress exited with code 1
我已经验证了我的赛普拉斯文件和文件夹已被复制,并且我可以验证我的测试文件是否存在。我已经坚持了一段时间,除了不确定,我不确定该怎么办。
任何指导表示赞赏。
答案 0 :(得分:0)
结果赛普拉斯会自动检查/ cypress文件夹中的/ integration。将我所有的赛普拉斯文件移动到/ cypress文件夹中即可正常工作。
答案 1 :(得分:0)
问题:在您的自动化套件中未找到 cypress 规范文件。
解决方案:Cypress 测试文件默认位于 cypress/integration
,但可以配置到其他目录。
在此文件夹中,按部分插入您的套件:
例如:
- cypress/integration/billing-scenarios-suite
- cypress/integration/user-management-suite
- cypress/integration/proccesses-and-handlers-suite
我假设这些套件目录包含子目录(代表一些微逻辑),因此您需要递归运行它以收集所有文件:
cypress run --spec \
cypress/integration/<your-suite>/**/* , \
cypress/integration/<your-suite>/**/**/*
如果您在 docker 上的 cypress 中运行,请验证 cypress 卷包含测试并映射并安装在 volume
部分(在 Dockerfile / docker-compose.yml 文件上)的容器中并正确运行:
docker exec -it <container-id> cypress run --spec \
cypress/integration/<your-suite>/**/* , \
cypress/integration/<your-suite>/**/**/*