Run all code checking tools with a single convenient mix check
command.
Takes seconds to setup, saves hours in the long term.
- Comes out of the box with a predefined set of curated tools
- Delivers results faster by running tools in parallel and catching all issues in one go
- Checks the project consistently on every developer's local machine & on the CI
- Runs only the tools & tests that have failed in the last run
- Fixes issues automatically in the fix mode
Sports powerful features to enable ultimate flexibility.
- Add custom mix tasks, shell scripts and commands via configuration file
- Enhance you CI workflow to report status, retry random failures or autofix issues
- Empower umbrella projects with parallel recursion over child apps
- Design complex parallel workflows with cross-tool deps
Takes care of the little details, so you don't have to.
- Compiles the project and collects compilation warnings in one go
- Ensures that output from tools is ANSI formatted & colorized
- Retries ExUnit with the
--failed
flag
Read more in the introductory "One task to rule all Elixir analysis & testing tools" article.
Add ex_check
dependency in mix.exs
:
def deps do
[
{:ex_check, "~> 0.16.0", only: [:dev], runtime: false}
]
end
Fetch the dependency:
mix deps.get
Run the check:
mix check
That's it - mix check
will detect and run all the available tools.
If you want to take advantage of community curated tools, add following dependencies in mix.exs
:
def deps do [ {:credo, ">= 0.0.0", only: [:dev], runtime: false}, {:dialyxir, ">= 0.0.0", only: [:dev], runtime: false}, {:doctor, ">= 0.0.0", only: [:dev], runtime: false}, {:ex_doc, ">= 0.0.0", only: [:dev], runtime: false}, {:gettext, ">= 0.0.0", only: [:dev], runtime: false}, {:sobelow, ">= 0.0.0", only: [:dev], runtime: false}, {:mix_audit, ">= 0.0.0", only: [:dev], runtime: false} ] end