# Canopy
## Elixir umbrella test coverage tool, with cross app stats.
## Why?
Existing tools for umbrella apps segregate test coverage stats per app,
operating under the assumption that apps should *only* be tested in isolation.
However, with the advent of Docker and the capability to create rapidly consistent test environments,
cross-app testing can be more productive.
It allows for higher-level coverage of modules that orchestrate side effects between apps.
## How?
canopy captures coverage statistics of inter-app communication within an umbrella app.
This enables comprehensive integration tests that reduce unnecessary mocking,
which is often tightly coupled to specific library implementations.
## What?
canopy compiles and executes all umbrella app code in the same :cover context using canopy.cover.
Results can be exported with a simple preview using canopy.inspect,
to a browser with canopy.html, or to an IDE with canopy.lcov.