设为首页 收藏本站
查看: 1259|回复: 0

[经验分享] 设置Jenkins使用Karma和Eslint进行单元测试和Lint检查

[复制链接]

尚未签到

发表于 2018-9-3 11:57:19 | 显示全部楼层 |阅读模式
  Jenkins被用作持续集成服务器。 本文主要介绍一下如何配置我们的Jenkins项目构建,以在GitHub上托管的项目上运行单元测试和lint检查。 然后Jenkins负责运行在构建中指定的所有测试。 如果build失败,它会通知所有开发人员,以便他们尽快修复导致build失败的错误。 一旦build在之前的失败之后通过,所有的开发者都会被再次通知build已经好了,新的代码可以被push到repository上。
DSC0000.jpg

  对于单元测试,我们使用Jasmine框架进行测试驱动开发。 简单了解一下Lint Checks是什么:
  Linting是检查编程,语法,风格错误的源代码的过程。 它使整个程序以统一的格式。 这可以通过编写一些规则来实现。 有像JSLint,JSHint,ESlint的分支。
  在这里,我们选择配置Jenkins和ESlint。 原因是:
  - 如果使用JSLint的话我们必须严格遵守所有的规则。
  - 如果使用JSHint的话我们可以进行一部分customize。 我们可以启用或禁用现有的规则
  - 如果使用ESlint,我们可以写自己的规则。 它是完全可定制的。
  Eslint使用Node.js编写,以提供快速运行环境和简单的安装。
  配置Jenkins需要遵循的步骤如下:
  1. 在Jenkins server上安装Node.js并且设置好project
DSC0001.jpg

  2. 在package.json中设置好dependency
  我们可以在package.json里设置好dependency,这样就不用手动安装和设置了。
DSC0002.jpg

  3. 在karma.conf.js里进行以下修改:
DSC0003.jpg

  把reporter指定为junit。
  把singleRun设为true,这样只会运行一次然后退出。
  指定输出目录来保存测试结果。
  接下来run “npm install", 会安装package.json里列出的所有的dependency
  然后会把linting的错误保存在eslint.xml里,把测试的结果保存在TEST_RESULTS文件夹的TESTS*.xml里。
  (这里*代表测试用的浏览器和系统环境)
  4. 执行脚本命令:
DSC0004.jpg

  5. 给输出("Publish JUnit test result report")配置路径
DSC0005.jpg

  6. 用CheckStyle插件用图展示测试结果
  首先需要安装checkstyle插件,然后指定linting的输出为checkstyle的输入
DSC0006.jpg

  缺省情况下,这个插件只会在build成功后run, 如果需要在即使build失败了也run的话要勾选"Run always"。
  7. 如果build失败了就通知developer
  在Jenkins Dashboard里,"Manage Jenkins -> Configure System -> Email Notification".
DSC0007.jpg

  在project设置里的E-mail Notification, 指定build失败后通知的邮件地址:
DSC0008.jpg

  完成设置后,build project之后就可以看到测试结果。
DSC0009.jpg



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-562022-1-1.html 上篇帖子: Jenkins installation-lfly的博客 下篇帖子: Jenkins与钉钉机器人实现手机端获取当前服务日志
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表