Javascript 使用Jenkins进行端到端测试的正确方法

Javascript 使用Jenkins进行端到端测试的正确方法,javascript,php,jenkins,e2e-testing,Javascript,Php,Jenkins,E2e Testing,我有一个前端使用PHP和ReactJS的应用程序。我对PHP项目进行了单元测试,对前端项目进行了e2e测试。我使用Jenkins和Docker为应用程序部署我的项目 当开发人员推动分支时,我希望在CI中运行测试(单元,e2e)。如果一切正常,我们可以部署该项目。我想知道这样做的正确方法 今天,我正在执行以下步骤: 一个开发人员推送代码,作业“测试应用程序”在jenkins中被触发 作业将在“dev”环境中构建docker映像,并使用PHP中的dev依赖项 应用程序已启动,假设url为“test

我有一个前端使用PHP和ReactJS的应用程序。我对PHP项目进行了单元测试,对前端项目进行了e2e测试。我使用Jenkins和Docker为应用程序部署我的项目

当开发人员推动分支时,我希望在CI中运行测试(单元,e2e)。如果一切正常,我们可以部署该项目。我想知道这样做的正确方法

今天,我正在执行以下步骤:

  • 一个开发人员推送代码,作业“测试应用程序”在jenkins中被触发
  • 作业将在“dev”环境中构建docker映像,并使用PHP中的dev依赖项
  • 应用程序已启动,假设url为“tests app.com”
  • 执行测试(使用Selenium和tests app.com的e2e单元)
  • 测试正常,将触发作业“app deploy”并关闭“tests app.com”
  • job-app-deploy在一个“prod”环境中构建docker映像,而不使用PHP中的开发依赖项
  • 应用程序已启动url现在为“app.com”

这样做对吗?从开发人员的推动到Jenkins构建的结束,可能需要5-10分钟。

LGTM,但在IMHO中,我建议在docker构建映像之前运行单元测试。如果单元测试中有错误,那么作业肯定会提前失败。所以你认为我应该在构建映像的过程中运行单元测试?我有一个“RUN composer安装”和一个“RUN venbor/bin/phpunit”?如果最后一次运行失败,映像将无法完全生成,jenkins作业将失败。