README.md

# ExCov

Code Coverage Reports for Elixir code.

`ExCov` is a lightweight, dependency-free, drop-in replacement for the code
coverage tool that is invoked by Mix when `mix test --cover` is invoked.

`ExCov` supports [Pluggable Reporters](#pluggable_reporters) for integration
with external services and customized reporting.

## Pluggable Reporters

ExCov uses pluggable reporters to print code coverage reports.

`ExCov` is intentionally minimal and free of any runtime dependencies, by
default the library includes no reporters.

To be useful, you must include at least one reporter as a dependency to your
project along with ExCov.

[`ExCov.Console`](https://github.com/mrinalwadhwa/excov_reporter_console) is a
good one to start with.

## Configuration

### mix.exs

Add the following to your project’s `mix.exs`:

````
def project do
  [
    ...
    test_coverage: [tool: ExCov],
    preferred_cli_env: [
      ...
      "cov": :test,
      "cov.detail": :test,
      ...
    ],
    ...
  ]
end

defp deps do
  [
    ...
    {:excov, "~> 0.1", only: :test},
    {:excov_reporter_console, "~> 0.1", only: :test}
    ...
  ]
end
````

### config/test.exs

````
config :excov,
  :reporters, [
    ExCov.Reporter.Console
  ]

config :excov, ExCov.Reporter.Console,
  show_summary: true,
  show_detail: false

````

## Run

To run the cover tool via the `mix` command:

````
mix test --cover
````

````
mix cov
````

````
mix cov.detail
````

## Credits

ExCov drew some initial ideas from
[ExCoveralls](https://github.com/parroty/excoveralls),
thanks [parroty](https://github.com/parroty).

## License

ExCov is licensed under the [MIT License](LICENSE).