Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.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
Reactjs Jenkins build中实现Jest测试的正确方法_Reactjs_Docker_Jenkins_Docker Compose_Jestjs - Fatal编程技术网

Reactjs Jenkins build中实现Jest测试的正确方法

Reactjs Jenkins build中实现Jest测试的正确方法,reactjs,docker,jenkins,docker-compose,jestjs,Reactjs,Docker,Jenkins,Docker Compose,Jestjs,我们正在使用Jest执行Node.js应用程序的React.js单元测试(在前端),该应用程序在docker容器中运行 我们已经在詹金斯建立了一个管道,但我不确定将测试作为管道一部分的最佳方式(或最佳实践) 我们采取的步骤如下: 检查源代码管理中的代码 NPM安装和NPM运行构建(前端) Docker构建+发布 部署应用程序 凹凸版 Git推送 码头清理 我有3个主要问题: A.我假设最好在步骤1和步骤2之间包含npm运行测试,并且如果所有测试都成功通过,是否继续 但是快照是如何处理的?例如,如

我们正在使用Jest执行Node.js应用程序的React.js单元测试(在前端),该应用程序在docker容器中运行

我们已经在詹金斯建立了一个管道,但我不确定将测试作为管道一部分的最佳方式(或最佳实践)

我们采取的步骤如下:

  • 检查源代码管理中的代码
  • NPM安装和NPM运行构建(前端)
  • Docker构建+发布
  • 部署应用程序
  • 凹凸版
  • Git推送
  • 码头清理
  • 我有3个主要问题:

    A.我假设最好在步骤1步骤2之间包含
    npm运行测试
    ,并且如果所有测试都成功通过,是否继续

    但是快照是如何处理的?例如,如果发生的某些更改在快照中产生了差异,则不会将其“检查”回源代码管理中

    我读到人们使用Cobertura、jest junit等在Jenkins中进行单元测试和覆盖-什么是最好的

    提前感谢。

    好问题

    A.您可以在
    npm安装后运行测试。如果所有的测试都通过了,你会更进一步。另一个常见的操作是运行linting或代码样式检查

    B.错误的快照将导致测试失败。这就是为什么在提交之前更新快照很重要的原因。如果您的jenkins连接到一个代码审查系统,您可以禁用失败构建的合并,以确保坏快照不会出现在您的主分支上


    C.我见过有人使用
    junit
    ,但那只是因为需要将覆盖率报告与
    junit
    覆盖率报告相结合。如果您对报告的结构没有任何特殊要求,那么默认的报告
    jest
    应该可以生成,并且您不需要任何额外的东西

    非常感谢你的回答!我将执行这个实现,到目前为止,Cobertura似乎工作得很好,但我想默认的jest报告也可以工作。