Frage

Ich finde die surefire-report Plug-in sehr ungeeignet meinen Arbeitsstil. Ich reinige das Projekt die ganze Zeit und ich will nicht, 5 min verbringen den ganzen Ort jedes Mal wenn ich Testbericht in meinem Browser aussehen wollen neu zu erstellen.

Wenn ich mvn surefire-report:report-only Typ, der erzeugte Bericht ist zu hässlich und kaum lesbar.

Was ich suche ist so etwas wie JUnitReport Ameise Aufgabe. Gibt es eine Verfügung da draußen schon?

War es hilfreich?

Lösung

Tatsächlich bei jedem Build die gesamte Website zu erzeugen ist eindeutig keine Option. Aber das Problem ist, dass mvn surefire-report:report-only nicht schaffen, die die CSS / *. CSS-Dateien, damit das hässliche Ergebnis. Dies wird angemeldet SURE-616 (Das bedeutet nicht, etwas passiert, obwohl) . Ich persönlich keine HTML-Berichte verwenden, so viel, damit ich damit leben kann, aber das ist keine gute Antwort, so ist hier eine Abhilfe auf der Grundlage der Ant-Task (* seufz *):

  <plugin>
    <artifactId>maven-antrun-plugin</artifactId>
    <executions>
      <execution>
        <id>test-reports</id>
        <phase>test</phase>
        <configuration>
          <tasks>
            <junitreport todir="target/surefire-reports">
              <fileset dir="target/surefire-reports">
                <include name="**/*.xml"/>
              </fileset>
              <report format="noframes" todir="target/surefire-reports"/>
            </junitreport>
          </tasks>
        </configuration>
        <goals>
          <goal>run</goal>
        </goals>
      </execution>
    </executions>
    <dependencies>
      <dependency>
        <groupId>ant</groupId>
        <artifactId>ant-junit</artifactId>
        <version>1.6.2</version>
      </dependency>
    </dependencies>
  </plugin>

Update: Meine erste Idee war, das Maven Plugin AntRun "on demand" ausführen, um die Berichte zu erstellen ... aber das ist nicht das, was ich geschrieben, ich gebunden an die test Phase ... aber ich glaube nicht, über den Fall der fehlgeschlagenen Tests (die die Build stoppen würden und verhindern, dass die Ausführung der AntRun Plugin). Also, entweder:

  1. nicht binden die AntRun Plugin an die test Phase bewegen sich die Konfiguration außerhalb des execution und Call mvn antrun:run auf der Kommandozeile, die Berichte zu generieren, wenn wollte.

  2. oder verwenden Sie die testFailureIgnore Option der mojo Test und setzen sie sich auf true in der todsicheren Plugin-Konfiguration:

    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-surefire-plugin</artifactId>
      <configuration>
        <testFailureIgnore>true</testFailureIgnore>
      </configuration>
    </plugin>
    
  3. oder setzen Sie diesen Ausdruck in der Befehlszeile der Parameter -D mit:

    $ mvn test -Dmaven.test.failure.ignore=true
    

ich denke, dass Option 1 ist die beste Option, die Sie nicht unbedingt die Berichte generieren möchten (vor allem, wenn der Test bestanden) und erzeugen sie kann systematisch die Build auf langfristig verlangsamen. Ich würde erzeugen sie "on demand".

Andere Tipps

Das ist, was ich tue:

# Run tests and generate .xml reports
mvn test

# Convert .xml reports into .html report, but without the CSS or images
mvn surefire-report:report-only

# Put the CSS and images where they need to be without the rest of the
# time-consuming stuff
mvn site -DgenerateReports=false

zum Ziel / site / todsichere-report.html für den Bericht.

Nach Tests durchgeführt, der Rest der beiden laufen in etwa 3,5 Sekunden für mich.

Ich hoffe, das hilft. Genießen Sie!

Danke für Pascal, ich habe eine bessere Lösung zu tun, was fand ich tun möchte:

<plugin>
    <!-- Extended Maven antrun plugin -->
    <!-- https://maven-antrun-extended-plugin.dev.java.net/ -->
    <groupId>org.jvnet.maven-antrun-extended-plugin</groupId>
    <artifactId>maven-antrun-extended-plugin</artifactId>
    <executions>
      <execution>
        <id>test-reports</id>
        <phase>test</phase>
        <configuration>
          <tasks>
            <junitreport todir="target/surefire-reports">
              <fileset dir="target/surefire-reports">
                <include name="**/*.xml"/>
              </fileset>
              <report format="noframes" todir="target/surefire-reports"/>
            </junitreport>
          </tasks>
        </configuration>
        <goals>
          <goal>run</goal>
        </goals>
      </execution>
    </executions>
    <dependencies>
      <dependency>
        <groupId>org.apache.ant</groupId>
        <artifactId>ant-junit</artifactId>
        <version>1.8.0</version>
      </dependency>
      <dependency>
        <groupId>org.apache.ant</groupId>
        <artifactId>ant-trax</artifactId>
        <version>1.8.0</version>
      </dependency>
    </dependencies>
  </plugin>

Diese Version verwendet eine neuere Version von Ameise und am besten von allen. Allerdings habe ich noch nicht gefunden, einen Weg, um einen Prüfbericht zu erzeugen, wenn Tests fehlschlagen. Wie soll ich das tun?

Hier ist, wie ich tat es das Ziel, mit Website maven-todsichere: Bericht :

    <reporting>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-report-plugin</artifactId>
                <version>2.16</version>
                <configuration>
                    <showSuccess>false</showSuccess>
                    <outputDirectory>${basedir}/target/surefire-reports</outputDirectory>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-site-plugin</artifactId>
                <version>3.3</version>
                <configuration>
                    <outputDirectory>${basedir}/target/surefire-reports</outputDirectory>
                </configuration>
            </plugin>
        </plugins>
    </reporting>

</project>

Sie können -Dmaven.test.failure.ignore=true stellen Sie den Prüfbericht zu erzeugen, wenn Tests fehlschlagen.

Erstellen Sie eine neue Maven Lauf-Konfiguration und mit Ziel =>

surefire-report:report site -DgenerateReports=false

Das kann man helfen, eine bessere Berichtansicht mit CSS haben.

Führen Sie den folgenden Befehl

mvn clean install surefire-report:report  

Sie können den Bericht in dem unten angegebenen Verzeichnis

finden
{basedir}/target/site/surefire-report.html

Für weitere Details siehe die folgenden Link

http://maven.apache.org/surefire /maven-surefire-report-plugin/usage.html

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top