I've been using JavaRebel since 1.0. It makes my job much more fun than it would otherwise be. It also makes me mad crazy productive. JavaRebel is like crack to those of use who have to deal with legacy J2EE apps and maven.
I have developed a harness that greatly speeds up test development for both JUnit and Selenium. It's incredibly simple, and I'd like JRebel to include it in some way in a future Intellij plugin. For instance, license the technology to IntelliJ so they can offer a product that dramatically speeds up JUnit test development.
Here's how it works: I have a main() method that runs unit tests in an infinite loop, with a block on System.in() at the end of the loop so that I can tell the app "do it again without rebooting". Here's what's inside the loop:
Request r = Request.method(TheClass.class,"testUpdateNGLDPropagation");
JUnitCore core = new JUnitCore();
core.addListener(new TheRunListener());
Result testResult = core.run(r);
Okay, there's a bit more--like parsing the test results, reporting pass/fail, etc. But that's pretty trivial stuff. The main() class is obviously started with the JavaRebel agent.
The big benefit here is that I get to avoid huge startup penalties with things like Hibernate, Spring, whatever. Typically I spend very little time tweaking hibernate and SQL but I spend lots more time on the particulars of my test. So to when I slap myself in the head and say "That should have been < instead of >", now I don't have to waste 3 minutes of my life waiting for the whole honkin' Hibernate framework to startup just to run my unit test.
