cover/README.md
2015-01-06 23:01:19 -05:00

2.6 KiB

Cover

This library is a supplement to rackets raco test that adds code coverage capabilities.

How to install

install via raco pkg install cover. To install for development, checkout the repo into a folder named cover and in the parent directory run raco pkg install cover/.

How to use

To view the arguments for Cover run raco cover -h.

Code coverage can be generated by specifying the -c <format> flag. Right now the valid formats are: html and coveralls.

html simply generates html files for each source file containing coverage information and highlighted source code.

coveralls generates a coveralls coverage report and sends it to coveralls. Using coveralls requires the "COVERALLS_REPO_TOKEN" to be set, and needs bash and curl. Travic-ci/Coveralls support coming soon...

Note that coveralls expect coverage by line. To convert from an expression based coverage to line based coverage we consider any line with any unrun expression to be not run.

The directory that the coverage is outputted to can be specified with the -d flag.

If any tests run by rackunit fail, Cover will return with exit code 1. If all tests pass it will return with exit code 0.

Use with TravisCI

If your code is hosted on a public github repo then you can use this plugin in conjunction with TravisCI and Coveralls. Just enable your repository on both services and then add a .travis.yml file to your repo with the following contents:

langauge: c
env:
  - RACKET_VERSION=6.1.1

before_install:
  - git clone https://github.com/greghendershott/travis-racket.git ../travis-racket
  - cat ../travis-racket/install-racket.sh | bash

script:
 - /usr/racket/bin/raco pkg install --deps search-auto $TRAVIS_BUILD_DIR # install dependencies
 - /usr/racket/bin/raco test $TRAVIS_BUILD_DIR # run tests. you wrote tests, right?
 - /usr/racket/bin/raco cover -c coveralls -d $TRAVIS_BUILD_DIR/coverage . # generate coverage information

The above Travis configuration will install any project dependencies, test your project, and report coverage information to coveralls.

For a contrived example project, look at an example. For additional Travis configuration information look at Travis Racket.

Note: This currently only works for public Github repos. This project does not support coveralls.yml configurations for private repos.

Internals

Cover also comes with a racket API for running tests and generating coverage reports. Documentation coming soon...