57 lines
2.6 KiB
Markdown
57 lines
2.6 KiB
Markdown
# 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](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...
|