Now that I’ve had the opportunity to work on a continuous integration infrastructure for both Mirth Connect interfaces and a MarkLogic-powered REST API. The Mirth interface testing software was built with Perl and TAP (Test Anything Protocol). The ML REST API testing software was built on MarkLogic itself. What they both had in common is that Jenkins was used to build the environments and run the tests.
I’ve really come to appreciate how useful Jenkins can be. Jenkins can aggregate jUnit style reports out of the box, and Jenkins can give you meaningful textual and graphical representations of those reports. It will tell you how many tests failed, how many tests passed, what class and packages were being tested, and it give you this information over the course of many builds.
However, since neither CI testing software was actually built on Java, I was unable to leverage the actual jUnit testing framework. In addition, neither the Mirth Connect interfaces nor MarkLogic/Xquery have a concept of grouping code into packages and classes as a Java programmer may expect. Because of these two issues, I had to generate jUnit output programmatically. Even though I was able to start with someones stab at the jUnit XML schema, I found that Jenkins does not parse and display the jUnit output exactly as I would have expected. For the time being, it is probably easier to ignore the jUnit schema and instead listen to what I’m about to say 🙂