我正在使用 Django 开发应用程序,并使用 Cypress 进行前端测试。该设置可在本地工作,但我想在 gitlab-ci 上设置测试。
我设法使Gitlab运行赛普拉斯测试(而应用程序在生产服务器上运行)。我想要实现(而且我正在努力)的是让Gitlab CI运行Django应用程序(可能甚至与nginx / gunicorn一样,模仿生产环境;但是嵌入式开发服务器也足够)。
有可能吗?要运行服务器并一次运行赛普拉斯? 我已经看到了一些在Gitlab-CI上针对nodejs应用程序使用docker-compose的示例-但我想避免将其正确地设置在一起(以便使用缓存等),这似乎是一件非常麻烦的事情。>
答案 0 :(得分:1)
我建议纯血统做。通过--c-source
操作员,您可以并行运行2个任务。
&
将运行django和cypress,最后一个(cypress)的结果将成为命令的最终结果。
如果您的后端需要一些时间才能运行,我建议在python manage.py runserver & npx cypress run
前的一段时间(例如5秒)后运行cypress。
如果您想杀死后端进程,可以通过python manage.py runserver & (sleep 5 && npx cypress run)
将pid
的进程保存到文件中,然后运行python manage.py runserver & echo $! > backend.pid & npx cypress run
命令杀死具有此文件中保存的ID的进程