reporting on JUnit assertion failures with custom messages
===

I've been creating unit tests using JUnit in Eclipse and the basic principles of JUnit are clear to me.
The tests run as they should and now it's time to find a good way to report on the failed tests. Most examples I come accross on the web are using some sort of built system like Ant, Maven or Hudson to run the tests at the same time as when they're building the project, but don't need this integration in the build process. The tests should be able to run independent from a build system. In the end these systems just take the info they get from JUnit and put it in a nice HTML layout.

I learned that it's possible to read out the JUnit information by [creating a custom listener via the RunListener class of JUnitCore][1] and handle the failures as they happen using the "testFailure" method.
When creating my tests, I always provided a custom message for the assertion errors. My problem is that this message does not show up in the failure trace of JUnit. Instead, the failure trace would show "java.lang.Exception: could not  invoke *". When I look at the console, I see the same stack trace but below also folows a line that is preceded by "Caused by: *" and here I do see my custom error message.

    Caused by: java.lang.AssertionError: <my custom error message>
        at *

As I'm just getting started with JUnit and I do not know if this is normal behaviour of JUnit or is there something wrong in the way I implemented my tests and should I just see my custom messages in the failure trace?
I also noticed that when I catch the assertion error in the method where I perform the test, I CAN access the message using "error.getMessage()". So if necessary, this would be a solution and would also allow me to include additional information in the report that is accessible at the moment I catch the error (i.e. url of webpage, etc.) but putting a try-catch block around every assertion would defeat its purpose in my opinion.

As I said I'm new to unit testing but also java development in general, so it's very likely that I'm making some stupid mistakes. Any pointers are very welcome! 

  [1]: http://www.junit.org/apidocs/org/junit/runner/notification/RunListener.html
