README.md

# Tix

Automatically re-run tests in Elixir's iex console when files are saved. It's like [mix test.watch](https://github.com/lpil/mix-test.watch) but without the reboot.

## Usage

Start an iex shell in test env with `MIX_ENV=test iex -S mix` and run `Tix.start()`.

Tix recompiles and executes tests automatically. Only relevant modules (see mix xref and mix test --stale) are recompiled.
The following algorithm is used to choose which test to execute:

1. Pinned test if present (pin with `Tix.pin({"/path/to/test.exs", 23})`)
2. Saved file is a test file (ending with `_test.exs`).✅
3. Saved file has a test sibling (same name as saved file but with `_test.exs`-ending) living in the same folder.✅
4. Previously executed test if none of the above matches.

## Installation

The package can be installed by adding `tix` to your list of dependencies in `mix.exs`:

```elixir
def deps do
  [
    {:tix, "~> 0.1.0"}
  ]
end
```

Documentation can be generated with [ExDoc](https://github.com/elixir-lang/ex_doc)
and published on [HexDocs](https://hexdocs.pm). Once published, the docs can
be found at [https://hexdocs.pm/tix](https://hexdocs.pm/tix).

## Issues

* Tests are randomized with the same seed.
* pry session kills itself (after a timeout) and testix with it
* Tags like `@tag :skip` are not considered

## (Planned) features

* Usage like https://github.com/nccgroup/sobelow, eg. `mix tix`
* Run all tests
* Set debug breakpoints from within vs-code
* Run only one explicit test on file save