设置Jenkins使用Karma和Eslint进行单元测试和Lint检查

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设置Jenkins使用Karma和Eslint进行单元测试和Lint检查相关的知识,希望对你有一定的参考价值。

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


技术分享图片


对于单元测试,我们使用Jasmine框架进行测试驱动开发。 简单了解一下Lint Checks是什么:


Linting是检查编程,语法,风格错误的源代码的过程。 它使整个程序以统一的格式。 这可以通过编写一些规则来实现。 有像JSLint,JSHint,ESlint的分支。



在这里,我们选择配置Jenkins和ESlint。 原因是:

- 如果使用JSLint的话我们必须严格遵守所有的规则。

- 如果使用JSHint的话我们可以进行一部分customize。 我们可以启用或禁用现有的规则

- 如果使用ESlint,我们可以写自己的规则。 它是完全可定制的。



Eslint使用Node.js编写,以提供快速运行环境和简单的安装。

配置Jenkins需要遵循的步骤如下:


    1. 在Jenkins server上安装Node.js并且设置好project


技术分享图片


    2. 在package.json中设置好dependency

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


技术分享图片


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

技术分享图片


把reporter指定为junit。

把singleRun设为true,这样只会运行一次然后退出。

指定输出目录来保存测试结果。


接下来run “npm install", 会安装package.json里列出的所有的dependency

然后会把linting的错误保存在eslint.xml里,把测试的结果保存在TEST_RESULTS文件夹的TESTS*.xml里。

(这里*代表测试用的浏览器和系统环境)


    4. 执行脚本命令:

技术分享图片


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

技术分享图片


    6. 用CheckStyle插件用图展示测试结果

 首先需要安装checkstyle插件,然后指定linting的输出为checkstyle的输入

技术分享图片

缺省情况下,这个插件只会在build成功后run, 如果需要在即使build失败了也run的话要勾选"Run always"。


7. 如果build失败了就通知developer


在Jenkins Dashboard里,"Manage Jenkins -> Configure System -> Email Notification".

技术分享图片


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

技术分享图片




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


技术分享图片

以上是关于设置Jenkins使用Karma和Eslint进行单元测试和Lint检查的主要内容,如果未能解决你的问题,请参考以下文章

使用 Jenkins 从 Karma.js 获得百分比覆盖率

Karma 无法捕获 PhantomJS

Karma 没有在 Jenkins CI 中运行,找不到模块 'karma-jasmine'

如何在 Jenkins 上运行的 Karma 单元测试中解决此错误:“找不到变量:jQuery”

使用 karma 和 jamis 进行 Angular 单元测试

使用 jasmine 和 karma 进行单元测试时形成数组错误