README.md

rebar_autotdd
=====

A rebar3 plugin for auto running compile on source file change reloading modules in the shell.
Based on rebar3_auto_plugin.


Prerequisite
-----
On Linux you need to install inotify-tools.


Use
---

Add the plugin *only* to your user local rebar config in `~/.config/rebar3/rebar.config`:

    {plugins, [rebar3_autotdd]}.

If you add it to your project rebar.config, it will get unloaded each time compilation occurs, thus breaking it.

Then run
```
    $ rebar3 compile
```

Then just call your plugin directly in an existing application:


```
$ rebar3 autotdd
===> Compiling rebar3_auto
Setting up watches.  Beware: since -r was given, this may take a while!
Watches established.
Erlang/OTP 20 [erts-9] [source] [64-bit] 
1> ===> This feature is experimental and may be modified or removed at any time.
Compiling rebar3_auto
Verifying dependencies...
Compiling relx
Compiling rebar3_autotdd
Verifying dependencies...
Compiling relx

1>
```

## On file change
```

AUTO-TDD===============
RECOMPILING
=======================
1> Verifying dependencies...
1> Compiling myapp
1>
AUTO-TDD===============
RUNNING UNIT TESTS
=======================
1> Verifying dependencies...
1> Linking _build/default/lib/bert to _build/test/lib/bert
1> Linking _build/default/lib/erlang_rethinkdb to _build/test/lib/erlang_rethinkdb
1> Linking _build/default/lib/gproc to _build/test/lib/gproc
1> Compiling yourapp
1> Performing EUnit tests...

1> Finished in 0.953 seconds
1> 10 tests, 0 failures
1>
AUTO-TDD===============
DONE
=======================
1>
```