Node.js单元测试、集成测试、基准测试以及代码覆盖率测试方面总结(2)

发表于:2016-05-17来源:推酷作者:OurJS点击数: 标签:
language: node_js node_js: - 6 - 5 before_script: script: - npm test - node benchmark/index.js after_script: 默认情况下,Travis CI 会自动安装依赖并执行 npm test 命令,通过 script 字

  language: node_js

  node_js:

  - "6"

  - "5"

  before_script:

  script:

  - npm test

  - node benchmark/index.js

  after_script:

  默认情况下,Travis CI 会自动安装依赖并执行 npm test 命令,通过 script 字段可以自定义需要执行的命令,其完整的生命周期包括:

  Install apt addons

  before_install

  install

  before_script

  script

  after_success or after_failure

  OPTIONAL before_deploy

  OPTIONAL deploy

  OPTIONAL after_deploy

  after_script

  基准测试

  基准测试使用严谨的测试方法测试工具或测试系统评估目标模块的性能,常用于观测软硬件环境发生变化后的性能表现,其结果具有可复现性。在 Node.js 环境中最常用的基准测试工具是 Benchmark.js ,安装方式:

  npm install --save-dev benchmark

  基本示例:

  const Benchmark = require('benchmark');

  const suite = new Benchmark.Suite;

  suite.add('RegExp#test', function() {

  /o/.test('Hello World!');

  })

  .add('String#indexOf', function() {

  'Hello World!'.indexOf('o') > -1;

  })

  .on('cycle', function(event) {

  console.log(String(event.target));

  })

  .on('complete', function() {

  console.log('Fastest is ' + this.filter('fastest').map('name'));

  })

  // run async

  .run({ 'async': true });

  代码覆盖率

  代码覆盖率工具根据测试用例覆盖的代码行数和分支数来判断模块的完整性。AVA 推荐使用 nyc 测试代码覆盖率,安装 nyc:

  npm install nyc --save-dev

  修改 .gitignore 忽略相关文件:

  node_modules

  coverage

  .nyc_output

  修改 package.json 中的 test 字段:

  {

  "scripts": {

  "test": "nyc ava"

  }

  }

  执行 npm test ,得到:

  ? test-in-action (master) ? npm test

  > test-in-action@1.0.0 test /Users/sean/Desktop/test-in-action

  > nyc ava

  2 passed

  ----------|----------|----------|----------|----------|----------------|

  File | % Stmts | % Branch | % Funcs | % Lines |Uncovered Lines |

  ----------|----------|----------|----------|----------|----------------|

  ----------|----------|----------|----------|----------|----------------|

  All files | 100 | 100 | 100 | 100 | |

  ----------|----------|----------|----------|----------|----------------|

  参考资料

原文转自: http://ourjs.com/detail/5738493888feaf2d031d24fa