# 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 ` 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](https://travis-ci.org/) and [Coveralls](https://coveralls.io/). Just enable your repository on both services and then add a `.travis.yml` file to your repo with the following contents: ```yml 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](https://github.com/rpless/rkt-ci-example). For additional Travis configuration information look at [Travis Racket](https://github.com/greghendershott/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...