Blanket.js vs Istanbul-js vs JSCover

后端 未结 1 2014
南旧
南旧 2021-02-06 22:41

I am trying to decide on a JS test code coverage tool but cannot see clearly the differences between them. The top hits in Google are blanket.js, istanbul-js and JSCover.

1条回答
  •  陌清茗
    陌清茗 (楼主)
    2021-02-06 22:52

    After some trying around i clearly find istanbul the most convenient tool to bring coverage analysis to a node-js project.

    • its installed with npm install
    • it sets up its behavior via the .istanbul.yml
    • gets invoked by its own executable
    • it provides multiple report formats such as clover, lcov, jscoverage, etc.

    Istanbul uses the provided executable or js-script to perform the tests and collect coverage information. It can be installed via npm:

    npm install istanbul mocha
    

    after successful installation simply invoke it by

    ./node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha
    

    respect the '_' since mocha forks the _mocha-executable as stated here

    blanket.js for nodejs integrates easily by

    • its installed with npm install
    • configuring its behavior via the package.json
    • getting invoked by mocha by requiring blanket at commandline
    • generating statistics that are interpreted by mocha's reporters, i.e. html-cov
    • can be used in browser JS

    basically it is ready to use after doing

    npm install blanket mocha
    

    after successful installation simply run your mocha tests like that

    ./node_modules/.bin/mocha --require blanket --reporter html-cov >coverage.html
    

    Unfortunately you have to invoke the mocha tests twice if you want to collect coverage information as well as collect test reports since you can only provide one reporter to mocha.

    I can not say anything about JSCover since its installation was to complicated for me. Important for me was that i do not have to install any packages as root or even compile things since it becomes more complicated for other users to create a development environment.

    0 讨论(0)
提交回复
热议问题