Here is a short comparison of for most popular ways to build test report for TestNG + Java framework (with comparison table in the end of the post).
This is a pretty simple logger which throws test suite execution to the Windows Console, Eclipse Console and text file.
There is no screenshot capturing or easy navigation between multiple suites, so, this is just a huge text file.
This is a much better test report, but you will not able to see the execution process in Windows console, executed steps and so on. But from the other hand – it easily shows what executed, skipped or failed in your test suite and what was the reason.
XSLT report is almost the same as TestNG basic report, but got much more better UI – graphical Test Suite overview, nice left scrollable panel with visualized test status.
Extent report is the best one in my list cause of the visualization of the result of the test suites execution:
Separate bug section, step by step log of the particular test case execution as we saw at Log4J and automatic screenshot capturing in case of error:
Here is the pros and cons of every report builder: