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


设置Jenkins使用Karma和Eslint进行单元测试和Lint检查_第1张图片


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


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



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

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

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

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



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

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


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


设置Jenkins使用Karma和Eslint进行单元测试和Lint检查_第2张图片


    2. 在package.json中设置好dependency

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


设置Jenkins使用Karma和Eslint进行单元测试和Lint检查_第3张图片


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

设置Jenkins使用Karma和Eslint进行单元测试和Lint检查_第4张图片


把reporter指定为junit。

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

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


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

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

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


    4. 执行脚本命令:

设置Jenkins使用Karma和Eslint进行单元测试和Lint检查_第5张图片


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

设置Jenkins使用Karma和Eslint进行单元测试和Lint检查_第6张图片


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

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

设置Jenkins使用Karma和Eslint进行单元测试和Lint检查_第7张图片

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


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


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

设置Jenkins使用Karma和Eslint进行单元测试和Lint检查_第8张图片


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

设置Jenkins使用Karma和Eslint进行单元测试和Lint检查_第9张图片




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


设置Jenkins使用Karma和Eslint进行单元测试和Lint检查_第10张图片