Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Gitlab CI中使用cypress和django_Django_Continuous Integration_Gitlab_Gitlab Ci_Cypress - Fatal编程技术网

在Gitlab CI中使用cypress和django

在Gitlab CI中使用cypress和django,django,continuous-integration,gitlab,gitlab-ci,cypress,Django,Continuous Integration,Gitlab,Gitlab Ci,Cypress,我正在使用Django开发一个应用程序,并使用Cypress进行前端测试。该设置在本地工作,但我想在gitlab ci上设置测试 我已经设法让Gitlab运行Cypress测试(而应用程序在生产服务器上运行)。我想要实现的(我也在努力实现)是让Gitlab CI运行Django应用程序(甚至可能使用nginx/gunicorn,模拟生产环境;但嵌入式开发服务器也足够了) 这有可能吗?要运行服务器并一次性运行Cypress? 我见过一些在Gitlab CI上为nodejs应用程序使用docker

我正在使用Django开发一个应用程序,并使用Cypress进行前端测试。该设置在本地工作,但我想在gitlab ci上设置测试

我已经设法让Gitlab运行Cypress测试(而应用程序在生产服务器上运行)。我想要实现的(我也在努力实现)是让Gitlab CI运行Django应用程序(甚至可能使用nginx/gunicorn,模拟生产环境;但嵌入式开发服务器也足够了)

这有可能吗?要运行服务器并一次性运行Cypress?
我见过一些在Gitlab CI上为nodejs应用程序使用docker compose的例子,但我想避免使用docker compose,因为正确地将其设置在一起(以便使用缓存等)似乎是一项非常麻烦的任务。

我建议使用纯bash。通过
&
操作员,您可以并行运行两个任务

python manage.py runserver&npx-cypress-run将运行django和cypress,最后一个(cypress)的结果将是命令的最终结果

如果您需要一些时间来运行后端,我建议您在一段时间后(例如5秒)通过
python manage.py runserver&(sleep 5&&npx-cypress-run)


如果您想终止后端进程,可以通过
python manage.py runserver&echo$!>将该进程的
pid
保存到文件中backend.pid&npx-cypress运行
并运行
kill$(cat-backend.pid)命令以终止保存在此文件中id的进程

在cypress退出后使用pidfile和kill的技巧似乎最合适。不过还有一个问题-要使用哪个docker base映像?Python应该基于
Python:3
,而cypress在
cypress/base:10
上运行;使用
cypress/base:10
并在内部安装python3是否足够好?在我看来,使用cypress和python3创建用于ci的docker容器没有什么错。