MX Unit is Slick

After seeing that MX Unit on Railo had some issues, I switched over to ColdFusion and I'm impressed.  Marc, Bill, et al have done a really great job.  They've resolved a number of issues that I had with CFCUnit, and really embraced the "Integrated" in "Integrated Development Environment."

I know I'm late to the party, but it's good stuff.  When I was doing a lot of Java, having JUnit right there as a fast view in Eclipse was great.  Having to go launch a browser, find the runner app, type in the test case I wanted, and then hit submit with CFCUnit just seemed to stupid.  And if you don't want (or maybe don't have) the plugin for a specific test, running it from the browser is a snap.  Just hit the 'runTestRemote' method of the CFC and you're done.  No external runner app required.

One thing that I found confusing was webroot, component path, and facade location settings.  It seems focused on one Eclipse install per CF instance, while I pretty much run one project per CF (or Railo) instance.  And having to specify the remote facade explicitly seems unnecessary.  You should be able to give it at the root URL of the application, and it'll figure out the default one from there.  Obviously specifying a full path would be desired, but for the default, having to figure out what to type seems unnecessary.  Once I figured it all out, it wasn't a big deal, but it seemed like more work than it ought to be.

Finally, the UI is kickass.  Not that a web-based test runner really needs a nice interface, but it's appreciated.  And having the ability to switch between the rich Ext-based UI and the simple HTML one (along with the XML formats) is appreciated.

3 responses to “MX Unit is Slick”

  1. marc esher

    Hey Barney,
    regarding your line "You should be able to give it at the root URL of the application, and it'll figure out the default one from there."…. can you help me understand exactly what you would like to see here? I don't have a setup like yours so I'm kind of having trouble "getting" it.

    But let me see if I am close: in your situation, the "global preferences" for webroot and facade URL aren't really useful because you an instance of CF/Railo per project. So you're using the project properties instead. Is that right? So in your project properties for ProjectA, maybe the URL is http://localhost:8888/mxunit/framework/RemoteFacade.cfc and for ProjectB, maybe it's http://localhost:8889/mxunit/framework/RemoteFacade.cfc

    Is that right, or am I completely off on this one? Or are you saying that in your projects, you aren't pointing to the mxunit/framework/RemoteFacade.cfc at all but instead each project has its own custom RemoteFacade.cfc (which is why the alternate URL was born, by the way… so you could subclass RemoteFacade and add in custom behavior per project).

    The reason I ask is that I sat down to add this behavior into the plugin but when I tried to figure out the logic, I didn't feel like I understood it well enough to do it correctly. So let me know what you're looking for, and I'll do my best to work it in.


  2. marc esher

    Cool. Makes sense Barney.

    thanks for the input!