I found the answer I was looking for quite by accident. The Erlang guys, major kudos to you guys for this, ship out an Emacs erlang-eunit mode. Here are the default bindings:<br><br><img src="data:image/png;base64,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" alt=""><br>
<br>There are some other nice functions available that aren't bound, but for the majority of the cases we are going to run into, these will do it. I can't believe I haven't seen this before. Again, I want to thank you guys for including something this awesome and to Klas Johansson for putting in the work to get it done. <br>
<br><div class="gmail_quote">On Thu, Mar 1, 2012 at 3:24 PM, Jayson Barley <span dir="ltr"><<a href="mailto:jayson.barley@gmail.com">jayson.barley@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I am wondering if anyone has any recommendations for a smoother TDD experience with Erlang and Emacs. I am finding the process to be less than optimal. The way I am doing it now is that I have 3 windows open. <br><ol><li>
In my test module I write my test</li>
<li>Switch to the Erlang buffer</li><li>Run my tests, see that it fails</li><li>Switch to the module under test buffer, write code to get the test to pass</li><li>Switch back to the Erlang buffer, run my tests again</li>
<li>
Switch back to the test buffer and repeat. </li></ol>Ideally I would like to have 2 windows open, 1 for the module under test and the other for the test window. From the module under test buffer or the test module I should be able to run the tests, see that they pass or fail and then move on.I have been considering writing an plugin to handle this functionality for me. Before I go that route I want to make sure I am not duplicating what someone else has already done.<br>

<br>Does anyone have any recommendations for how to do this better?<br>
</blockquote></div><br>