如何在docker容器中针对外部应用程序运行cypress测试
我有一套cypress e2e测试。这些测试的代码存在于他们自己的git repo中。如何在docker容器中针对外部应用程序运行cypress测试,docker,docker-compose,cypress,Docker,Docker Compose,Cypress,我有一套cypress e2e测试。这些测试的代码存在于他们自己的git repo中。 当通过cypress cli手动执行这些测试时,我可以根据环境DEV/QA/STG和PROD点击不同的URL 我可以在本地运行应用程序,但不希望在本地运行,我要做的是在容器内执行测试,并让它们在容器外访问应用程序 为了实现这一点,我在端口4200上本地启动了应用程序。我的cypress配置在其配置文件中设置了基本url属性,我可以从cypress cli(而不是docker)成功运行测试 在我的cypress
当通过cypress cli手动执行这些测试时,我可以根据环境DEV/QA/STG和PROD点击不同的URL 我可以在本地运行应用程序,但不希望在本地运行,我要做的是在容器内执行测试,并让它们在容器外访问应用程序 为了实现这一点,我在端口4200上本地启动了应用程序。我的cypress配置在其配置文件中设置了基本url属性,我可以从cypress cli(而不是docker)成功运行测试 在我的cypress测试报告中,我有以下Dockerfile
FROM cypress/base:12.18.4
RUN mkdir /app
WORKDIR /app
COPY . /app
RUN npm install
RUN $(npm bin)/cypress verify
RUN ["npm","run","cypress:run"]
执行docker run
时,我看到以下错误
#12 6.411 Cypress could not verify that this server is running:
#12 6.411
#12 6.411 > http://localhost:4200/
#12 6.411
#12 6.411 We are verifying this server because it has been configured as your `baseUrl`.
#12 6.411
#12 6.411 Cypress automatically waits until your server is accessible before running tests.
#12 6.411
#12 6.411 We will try connecting to it 3 more times...
#12 9.417 We will try connecting to it 2 more times...
#12 12.42 We will try connecting to it 1 more time...
#12 12.42
#12 16.43 Cypress failed to verify that your server is running.
不完全确定如何“允许”测试访问我的localhost:4200
我觉得我需要创建一个docker compose文件,但不确定网络细节
非常感谢任何帮助或想法只需将--network host
键添加到您的docker run
命令:
docker run --name cypress --network host cypress/base:12.18.4