Как заставить Maven / SureFire создавать отчеты о тестировании HTML вместо XML? для SureFire, PMD и остальных инструментов контроля качества.
Так это выглядело бы как здесь.
Спасибо, Ник, есть ли универсальный плагин Maven, который преобразует отчеты XML (из других плагинов) в HTML? ссылка в исходном сообщении показывает все отчеты в HTML, то есть PMD, Sonar, CheckStyle FindBugs
Хм, я не совсем понимаю, что вам нужно. Вы ищете единственный плагин, который конвертирует любой старый xml-отчет в html? Включая отчеты (например, покрытие кода), которые могут не поддерживаться плагином надежных отчетов?
да, именно так
Насколько я понимаю, плагин surefire report будет представлять только то, что он перечисляет в указанной вами ссылке на отчеты по проекту, но не "любой" xml-отчет, который вы ему добавляете. Но я думаю, что этот плагин предоставит вам то, что вам нужно, если нет определенного типа отчета, для которого вы хотели бы получить поддержку.
Я пока буду работать с этим, спасибо. Я приму ваше предложение, если вы добавите его в качестве ответа.
Судя по нашему разговору выше, похоже, что вы ищете все в одном преобразованном XML -> HTML. Я не знаю такого плагина, но я считаю, что плагин surefire report в сочетании с одним или двумя другими доставит вас туда, где вам нужно.
Для начала я бы посмотрел на документация по использованию плагина surefire-report. Кроме того, я собрал быстрый пример того, как вы можете начать работу, объединив плагины для отчетов surefire, pmd и surefire:
Используя следующую структуру проекта:
├── pom.xml
└── src
├── main
│ ├── java
│ │ ├── Main.java
│ │ └── SomeClass.java
│ └── resources
└── test
└── java
└── SampleTest.java
И эти определения классов:
SomeClass.java
import java.util.List; //Unused import, so PMD will have something to pick up
public class SomeClass {
public void testMethod(){
System.out.println("This is my test method with some PMD violations");
}
}
SampleTest.java
import org.junit.Assert;
import org.junit.Test;
//Sample tests, so the surefire report will have something to show
public class SampleTest {
@Test
public void test1(){
Assert.assertTrue(true);
}
@Test
public void test2(){
Assert.assertTrue(false);
}
}
и, наконец, pom.xml
<?xml version = "1.0" encoding = "UTF-8"?>
<project xmlns = "http://maven.apache.org/POM/4.0.0"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>sample</groupId>
<artifactId>plugins</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<dependencies>
<!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-surefire-plugin -->
<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.21.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/junit/junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.21.0</version>
</plugin>
</plugins>
</build>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>3.9.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
<version>2.21.0</version>
</plugin>
</plugins>
</reporting>
</project>
В результате, когда я бегу
mvn clean pmd:pmd site
Затем я могу открыть созданный сайт:
open target/site/index.html
Оттуда я могу видеть свои сгенерированные отчеты, в моем случае только отчеты о тестах PMD и surefire:
Кроме того, если вы хотите получать больше отчетов, с которыми, возможно, не помогает плагин надежных отчетов, проверьте Жакоко и, возможно, даже взгляните на Sonar.
Спасибо, Ник, очень подробный и элегантный ответ
Я думаю, что документация по использованию может указать вам правильное направление - maven.apache.org/surefire/maven-surefire-report-plugin/…. Или вы наблюдаете какую-то другую проблему?