Langr Software Solutions » Infinitest

Langr Software Solutions » Infinitest — Main Menu — Home Consulting / Coaching Training - Information About Training - Student Quotes - Technical Training - Process Training Resources - Agile in a Flash blog - Articles - Jeff’s Wiselike Page (Q&A!) - Books Jeff’s Blog About Home Consulting / Coaching Training Information About Training Student Quotes Technical Training Process Training Resources Agile in a Flash blog Articles Jeff’s Wiselike Page (Q&A!) Books Jeff’s Blog About Infinitest June 29, 2009 By jlangr 0 Comment I recently re-downloaded Ben Rady’s Infinitest , having finally gotten back into some extended Java development work. Infinitest runs tests continually, so that you need not remember to proactively run them. The last time I played with Infinitest, perhaps over two years ago, there was no Eclipse plugin. As I recall, on save, tests would run in a separate JUnit window external to Eclipse. At the time, I had had a brief chance to sit with Ben and look at some of the code while at Agile 2007. I thought Inifinitest was a cool idea. But I didn’t use it extensively, partly because I’d begun to move into lots of C++ work, but also because I had a hard time fitting it into my very ingrained test-code-refactor cycle habits. Having to deal with an external window seemed disruptive. Infinitest today is another matter entirely. Plugins have been developed for Eclipse and IntelliJ. In Eclipse, tests run as soon as you save. But they don’t run in the JUnit view–instead, test failures are reported in the Problems window, just like compilation errors. Immediately, this means that Infinitest is not disruptive, but is instead built into the normal flow of development. Showing test failures on save is an extremely important transition, one that will help change the outlook on what TDD means. No longer are tests only an optional afterthought, something that a developer might or might not remember to or choose to run. With Infinitest, you don’t think at all about running the tests, they just run themselves. Tests are continual gating criteria for the system: If the code doesn’t pass all of its tests, Eclipse continues to point out the problem. This forces the proper mentality for the TDDer: The system is not complete unless the tests pass. Infinitest uses a dependency tree to determine which tests must be run on save. The nice part for a die-hard TDDer like me is that my tests–my saves–will execute very quickly. This is because the die-hard TDDer knows how to design systems so that the unit tests run fast. I do wonder, however, about what this feels like for the developer on a system with lots of poor dependencies and slow-running tests. I’ll have to experiment and see how that feels. I hate to dredge up an annoying buzzphrase, but Infinitest is really a no-brainer. I’ve only used it regularly for a few days now, but I can’t see doing TDD in Java without it. About the Author Social Share Leave a Reply Cancel reply Name * Email * Website Anti-Spam * Search this site Recent Posts The Compulsive Coder, Episode 7: Please AAA November 15, 2016 The Compulsive Coder, Episode 6: this Duplication is Killing Me October 19, 2016 The Consulting Legitimacy Cycle: 4+ years to 2 weeks September 13, 2016 The Compulsive Coder, Episode 5: Extract Method Flow September 7, 2016 The Compulsive Coder, Episode 4: You Create, It Assigns August 30, 2016 Contact Me Name Email Message Submit Langr Software Solutions, Inc. / Jeff Langr I've been there and seen just about everything: Professional developer for 33+ years Consultant helping customers learn and succeed since 2002 Author of five books on software development I can help you with: hands-on TDD mentoring / training / pairing getting your legacy code under control strengthening and growing a successful development process building a successful ATDD strategy with maintainable tests designing / running a distributed development team Want to hear more? Call 719-287-GEEK or use the Contact Me form to the left. Thank you! Jeff Langr Copyright © 2016 Langr Software Solutions. Call +1-719-287-GEEK with any questions or pricing inquiries, or to schedule consulting/training now! Atom