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}
]
end
Configure it in your project
# config/config.exs
import Config
if config_env() == :dev do
config :mix_test_watch,
clear: true
end
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 test.watch --seed 0 --max-failures 1 --include pending
Example
Here's an example of how this looks in VS Code:
Enjoy!
Top comments (0)