I have just released SUnitToo(ls)-AutoTest, which automatically runs relevant SUnitToo tests whenever a method changes in Visualworks Smalltalk.

Years ago, people started talking about having tests run automatically whenever they saved their code. The idea intrigued me enough to want to try it, but I was pretty sure I wasn’t going to like it. I hacked up a package named SUnitToo(ls)-AutoRun that worked in the current browser window using the existing “MiniBar”. This mostly worked with some minor annoyances and a couple of bugs.

I found that I quickly became addicted to the automatic feedback I was getting. However, I was annoyed that the test run was taking over my browser window, interfering with my coding flow. After hearing about the AutoTest package in Pharo, created by Laurent Laffont, I tried it out and decided that its approach was better suited to what I wanted. From that, SUnitToo(ls)-AutoTest was born.

SUnitToo(ls)-AutoTest runs in a separate window so that an automatic test run doesn’t interfere with your current browser window. There is also an option to integrate with your desktop’s notification system. When a test run completes, a notification is displayed with the results of the test. The notification integration is Linux only for now, but contributions are welcome.

If you close the AutoTest UI and disable the Notifier, then AutoTest will be inactive. This is handy when you’re working on dangerous code, such as DLLCC interfaces, that could crash your image if run at just the wrong time.

SUnitToo(ls)-AutoTest’s primary home is the Cincom Public Store Repository. Check there for the latest version. I’ve also put a snapshot of the current version on GitHub. The Readme file on GitHub includes high-level documentation if you’d like more information before diving in. I’ve also submitted it for inclusion as a contributed package in the forthcoming Visualworks 7.10 release.

SUnitToo(ls)-AutoTest was developed in VW 7.9.1, but is intended to be compatible with VW 7.7 and later.

SUnitToo(ls)-AutoTest is licensed under the MIT license.

Thanks to Laurent Laffont whose Pharo AutoTest package inspired this one.