Node.js 持续集成

Istanbul, Travis, Coveralls

Posted on March 26, 2017

1. Istanbul

1.1 使用

  1. 在项目中安装依赖:

    npm install --save-dev coveralls mocha-lcov-reporter

    也可安装为全局的, 不过方便在Travis上使用, 建议本项目安装

  2. package script:

    "scripts": {
      "cover": "./node_modules/.bin/istanbul cover _mocha -- recursive",
      //"cover": "./node_modules/.bin/istanbul cover _mocha -- recursive test/lib/*", // 指定目录
    },
    
  3. 执行npm run cover

    生成的测试覆盖报告在coverage/ 下, 入口页面: coverage/lcov-report/index.html

1.2 Html report

  • 标记E: else 分支未被测试
  • 标记I: if 分支未被测试
  • 标记xN: 当前行被执行了多少次
  • 红色高亮: 未执行的代码

2. Travis

Travis CI


3. Coveralls

  1. https://coveralls.io 用github账号登陆, 并开启相应项目

  2. 在项目中安装依赖:

    npm install --save-dev coveralls mocha-lcov-reporter

  3. package script:

    "scripts": {
      "coveralls": "npm run cover -- --report lcovonly && cat ./coverage/lcov.info | ./node_modules/.bin/coveralls"
    },
    
  4. 执行命令npm run coveralls

    该命令会将测试覆盖报告推送到coveralls.

  5. 与 travis-ci集成:

    .travis.yml中增加: after_script: npm run coveralls


参考资料