Ineo

What is ?

Ineo is a collection of java packages to extend the JUnit testing framework.

How does it work ?

It supports detailed reporting to an xml output, with the test cases implementations partecipating in this reporting.

What is not ?

Ineo is not a report producer for a generical JUnit test suite. The tests implementations need to know about the existance of the report facility and must use it to have a result.

Why should I use it ?

If you want to produce a testing suite that is not just a sequence of true / false but that give complex results you could need this package.

Complex results ?

For example in a test you could need to specify what were the characters received so you must print their code character one by one and show the differences with the expected sequence.

The are also other reasons, for example imagine someone making a test for testing the behavior of different implementations of a certain service. He could know why a certain implementation could fail, for example because it doesn't implement an optional feature. If we are are lucky he will write something in the test code, if we are really lucky he will show this in the test failure message. In general these informations go somehow lost because people reading the results could not have access to code in that moment. Showing these informations in the report makes possible for people to understand better what is going on. I think that it is easy to implement a test without remembering what it was for, showing it in the test report can add value to the whole testing process.

An example ?

An implementation of the reporting, that was the reason why I decided to implement this package, is a conformance testing for SAX and DOM parsers.The first block available tests whitespaces handling.

ok, and JUnit alone was not enough for this project ?

This suite was designed to know wich implementations are safe to use for an other xml-binding project and what are the differences so that workarounds could be found and the general knowledge base about a certain product could be increased. In this kind of testing is more evident how you need to specify more informations than the binary failure/success. For example if we test the org.xml.sax.ContentHandler.characters event fot say <xml>&#13;t&#32;</xml> we better know which were the characters received and not only if they were the right ones (&#10;t&#32;).