README.md

# Flexi

A flexible Elixir Mix test runner.


## Usage

Start your IEx console in test mode:
```bash
$ MIX_ENV=test iex -S mix
```

First load / execute all test modules with an empty query:

```elixir
# grepping based on file names
iex> Flexi.filematch("")
```


```elixir
# grepping based on test names
iex> Flexi.namematch("")
```


```elixir
# grepping based on test module names
iex> Flexi.modulematch("")
```


## Requirements:

- Elixir 1.7-dev after [Introducing :only_test_ids as options for ExUnit](https://github.com/elixir-lang/elixir/commit/594f778fffbf71c03e05a5f4e5beadcbcd0c7b58#diff-1e5179d66aaabef6fbc8efa93ae33493)

## Installation

If [available in Hex](https://hex.pm/docs/publish), the package can be installed
by adding `flexi` to your list of dependencies in `mix.exs`:

```elixir
def deps do
  [
    {:flexi, "~> 0.1.0", only: [:dev, :test]}
  ]
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/flexi](https://hexdocs.pm/flexi).



## Future ideas:
  - combining different types of filters, like module + name
  - debug mode / more logging (?)
  - make Flexi part of [Cortex](https://github.com/urbint/cortex/commits/master), so it would re-run tests that match the query,
    because the current implementation for `Cortex.focus` is not useful at all :(