I wrote a utility class for my project.
The method does:
- run TestNG tests programmatically
- verify the failures happened in TestNG tests run
- If there is a failure, combine all assertion messages including stack trace, then make a single AssertionError
(I'm also using google-guava)