用Grunt实现自动化

首先要装上 Grunt 命令行以及 Grunt 本身:
sudo npm install -g grunt-cli
npm install –save-dev grunt
Grunt 要靠插件完成任务,Grunt 插件列表(http://gruntjs.com/plugins)中列出了所有可用 插件。我们需要 Mocha、JSHint 和 LinkChecker 的插件。在写本书时,还没有 LinkChecker 的插件,所以我们只能用执行 shell 命令的通用插件。接下来我们先把必需的插件装上:
npm install –save-dev grunt-cafe-mocha
npm install –save-dev grunt-contrib-jshint
npm install –save-dev grunt-exec
现在所有插件都装好了,在项目目录下创建一个 Gruntfile.js 文件:

module.exports = function(grunt) {  

     // 加载插件  
['grunt-cafe-mocha',
 'grunt-contrib-jshint',
 'grunt-exec'
 ].forEach(function(task){
    grunt.loadNpmTasks(task);
 }); 

    // 配置插件        
     grunt.initConfig({                 
      cafemocha: {
       all: {
        src:'qa/tests-*.js',
        options: { ui: 'tdd' }
       }
      },                 
      jshint: {                         
       app: ['meadowlark.js', 
             'public/js/**/*.js',
             'lib/**/*.js'],                         
       qa:['Gruntfile.js','public/qa/**/*.js', 'qa/**/*.js']
      },                 
      exec: {
      linkchecker:{ cmd: 'linkchecker http://localhost:3000}
      },          
 }); 

        // 注册任务
        grunt.registerTask('default', ['cafemocha','jshint','exec']); };

在“加载插件”部分,我们指定了要用哪些插件,跟我们通过 npm 安装的插件一样。(一旦你开始依赖 Grunt,相信我,你会添加更 多插件的),所以我选择把它们全部放到数组中,并用 forEach 循环遍历。

在“配置插件”部分,我们必须做些工作让每个插件都能正常工作。对于 cafemocha 插件 (由它运行逻辑和跨页测试),我们必须告诉它测试在哪里。我们把所有测试都放在子目录 qa 下面,并在文件名中加上前缀 tests-。注意,我们必须指定 TDD 界面。如果是 TDD 和 BDD 混合的界面,则必须想办法把它们分开。比如,你可以用两个前缀 tests-tdd- 和 testsbdd-。
对于 JSHint,我们必须指定要对哪些 JavaScript 文件去毛。这里一定要当心!依赖项经 常不一定能通过 JSHint,或者它们用的是不同的 JSHint 设置,并且你会被 JSHint 错误淹 没,而其中很多代码都不是你写的。具体来说,你要确保别把 node_modules 目录以及任何 vendors 目录包含在内。目前 grunt-contrib-jshint 还不能排除文件,只能包含它们。所以 我们必须指定所有想要包含在内的文件。我一般会把想要包含的文件分成两个列表:真正 构成应用程序或网站的 JavaScript,以及 QA JavaScript。它们都要去毛,但这样分开更容 易管理一些。注意通配符 /**/ 的含义是“子目录中的所有文件”。尽管现在还没有 public/ js 目录,但我们会有的。隐含着排除的是 node_modules 和 public/vendor 目录。
最后,我们配置了 grunt-exec 插件,让它运行 LinkChecker。注意,我们把端口 3000 硬编 码在这个插件的配置里了。这最好能参数化。
最后我们“注册”了这些任务:把单个的插件放到一个命名分组中。一个特定名称的任务 default,在你只是输入 grunt 后,就会默认运行。
现在你只需确保服务器在(后台或另一个窗口中)运行着,然后运行 Grunt:
grunt
所有测试都会运行(除了页面测试),所有代码都会去毛,所有链接都会被检查!如果某 个组件失效,Grunt 会给出错误消息并终止,否则它会报告“完成,没有错误”。没有什么 比看到这条消息更让人满意的了,所以养成提交前运行 Grunt 的习惯吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值