Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Failsafe html reports in Jenkins

I have some integration tests (with Selenium) which are run with failsafe maven plugin. Failsafe generates XML reports files only.

1) I want to generate HTML reports

2) I want to have a link in Jenkins to the html reports

For the 1) I installed the "maven-surefire-report-plugin" to use the failsafe-report-only goal.

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-report-plugin</artifactId>
  <version>2.13</version>
  <executions>
    <execution>
      <phase>post-integration-test</phase>
      <goals>
        <goal>failsafe-report-only</goal>
      </goals>
    </execution>
  </executions>
</plugin>

But in the standard output, nothing seems to be generated :

[INFO] 
[INFO] >>> maven-surefire-report-plugin:2.13:failsafe-report-only (default) @ BaseContrats >>>
[INFO] 
[INFO] <<< maven-surefire-report-plugin:2.13:failsafe-report-only (default) @ BaseContrats <<<
[INFO] 
[INFO] --- maven-surefire-report-plugin:2.13:failsafe-report-only (default) @ BaseContrats ---

In my failsafe-reports directory, I have only XML report files but not the HTML ones.

Is it the good plugin to generate html reports for failsafe?

For the 2), I installed the Jenkins plugin "Selenium HTML report" and added the post build action "Publish Selenium HTML report" and configured it with "target/failsafe-reports" value for "Selenium tests results location" parameter, but nothing is displayed in Jenkins interface (surely because my html reports file are not generated...).

Could you help me for these 2 points?

like image 631
Clem Avatar asked Feb 27 '13 14:02

Clem


1 Answers

Answer for the part 1) to generate HTML reports for Failsafe.

Add the following to pom.xml

<reporting>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-report-plugin</artifactId>
            <version>2.18.1</version>
            <configuration>
                <skipSurefireReport>${skipSurefireReport}</skipSurefireReport>
                <reportsDirectories>
                    <reportsDirectory>${basedir}/target/failsafe-reports</reportsDirectory>
                </reportsDirectories>
            </configuration>
        </plugin>
    </plugins>
</reporting>
<properties>
   <skipSurefireReport>true</skipSurefireReport>
</properties>

I am assuming you are using mvn verify to run the integration tests using failsafe-plugin. By default, this generates the (*.txt & *.xml) reports in {basedir}/target/failsafe-reports. This should be specified in <reportDirectories>. You can point to any directory which has TEST-*.xml reports.

And then run the cmd

mvn site

This would generate html reports for the Failsafe run integration tests. By default, The files would be in {basedir}/target/site/failsafe-report.html. This location be changed.

like image 199
src3369 Avatar answered Oct 19 '22 21:10

src3369