Run tests automatically on save

Running your tests automatically every time you save helps a lot with languages like Elixir.

Reported from

I was looking for a solution to run tests automatically every time I save any changes. The best way so far for me is the following hex package:


Install the dependency

# mix.exs (v1.13)
def deps do
    {:mix_test_watch, "~> 1.0", only: :dev}

Configure it in your project

# config/config.exs
import Config

if config_env() == :dev do
  config :mix_test_watch,
    clear: true

The clear: true option means that the screen will clear every time tests run. This is useful because it is easier to scroll back to the top of the most recent test run.

Start watching for changes

In your terminal or within a VS Code terminal, this works great:

mix --seed 0 --max-failures 1 --include pending


Here's an example of how this looks in VS Code:


Do you have feedback or questions about this? Email me.

Last updated