How to add test coverage report to Phoenix project.
Phoenix is a web framework for Elixir language. In this post, we will see how to add test coverage report support with excoveralls
library. Follow below steps.
Add excoveralls as a (Development) Dependency to mix.exs
Open mix.exs
file and find the "deps" function
def deps do
Add the following line to the end of list
{:excoveralls, "~> 0.11.2", only: [:test, :dev]} # tracking test coverage
Additionally, find the def project do
section (towards the top of mix.exs) and add the following lines to the List:
test_coverage: [tool: ExCoveralls],
preferred_cli_env: [
coveralls: :test,
"coveralls.detail": :test,
"coveralls.post": :test,
"coveralls.html": :test
]
Then, install the dependency on excoveralls we just added to mix.exs:
mix deps.get
You should see following
Resolving Hex dependencies...
Dependency resolution completed:
* Getting excoveralls (Hex package)
... etc.
Create a new file named coveralls.json
In the "root" (base directory) of the Phoenix project, create a new file called coveralls.json and copy-paste the following:
{
"coverage_options": {
"minimum_coverage": 100
},
"skip_files": [
"test/"
]
}
This config file instructs coveralls app to require a 'minimum_coverage' of 100% and to ignore the files in the /test
directory for coveragge checking.
Run the Tests with Coverage checking
To run the tests with coverage, copy-paste the following command into your terminal:
MIX_ENV=test mix do coveralls.json
To view coverage in a web browser, run following
MIX_ENV=test mix coveralls.html && open cover/excoveralls.html
You should see coverage report in browser as below.