There are multiple ways to generate reports in Selenium:
Extent Report: Extent Reports is a customizable HTML report which can be integrated into Selenium WebDriver using JUnit and TestNG frameworks.
ReportNG: ReportNG is a simple plug-in for the TestNG unit-testing framework to generate HTML reports as a replacement for the default TestNG HTML reports. You can also customize html report with the help of TestNG listeners.
TestNG: The TestNG will generate the default report. When you execute testng.xml file, and refresh the project. You will get test-output folder in that folder.
JUnit: JUnit is another useful framework that can add the ability to generate reports in Selenium. It provides the JUnit <TestWatcher> class to introduce reporting ability.
The JUnit’s TestWatcher class has the <failed()> and <succeeded()> methods which you can override. The JVM would call them automatically whenever it found a pass or failure.