Readme for hpc-coveralls-0.2.1

hpc-coveralls Build Status

hpc-coveralls converts and sends Haskell projects hpc code coverage to coverall.io.

At the moment, only Travis CI has been tested, but hpc-coveralls should be compatible with other CI services (Check HpcCoverallsMain source for the list).

hpc-coveralls is still under development and any contributions are welcome!

Usage

Travis CI

Commands to add to your project .travis.yml:

before_install:
  - cabal install hpc-coveralls
script:
  - cabal configure --enable-tests --enable-library-coverage && cabal build
  - run-cabal-test [options] [cabal-test-options]
after_script:
  - hpc-coveralls [options] [test-suite-name]

Note that the usual cabal test command is replaced by run-cabal-test. The reason for this is explained in the next section.

For an example usage, please refer to this-project .travis.yml file (result on coveralls).

The run-cabal-test command

When using hpc 0.6, cabal test outputs an error message and exits with the error code 1, which results in a build failure.

In order to prevent this from happening, hpc-coveralls provides the run-cabal-test command which runs cabal test and returns with 0 if the regex ^Test suite .*: FAIL$ never matches any line of the output.

This hpc issue should be fixed in version 0.7 (not yet available on Travis CI).

Options

The --cabal-name option can be used to specify a custom executable name instead of the default cabal when calling cabal test.
Below is an example which can be useful for projects with a Travis configuration based on multi-ghc-travis:

run-cabal-test --cabal-name=cabal-1.18

The hpc-coveralls command

At the moment, you can specify only one suite. For example, if your test suite is named test-all, use the command as follows:

hpc-coveralls test-all

Options

The --exclude-dir option can be used to exclude source files located under a given directory from the coverage report.
You can exclude source files located under the test/ by using this option as in the following example:

hpc-coveralls --exclude-dir=test [test-suite-name]

Limitations

As Coveralls doesn't support yet partial-line coverage, the following convention is used to represent line coverage with line hit counts:

This convention is the same as the one used by cloverage coveralls output for Clojure projects code coverage.

There's an open issue to improve this.

Contributing

hpc-coveralls is still under development and any contributions are welcome!

Future Plans and Ideas

License

BSD3 (tl;dr)

Notes