在 Maven 中:如何显示详细的 SureFire 测试结果(从 xml 转换为 html)?
Within Maven : how to display detailed SureFire test results (convert from xml to html)?
如何让 Maven/SureFire 生成一份 HTML 测试报告而不是 XML 一份?
适用于 SureFire、PMD 和其他质量控制工具。
所以它看起来像 here。
根据我们上面的对话,听起来您正在寻找一体式 XML -> HTML 转换。我不知道有这样的插件,但我相信 surefire 报告插件与其他一两个插件相结合可以让您到达需要的位置。
首先,我会查看 usage docs for the surefire-report plugin。此外,我整理了一个快速示例,说明如何通过组合 surefire、pmd 和 surefire 报告插件开始:
使用以下项目结构:
├── pom.xml
└── src
├── main
│ ├── java
│ │ ├── Main.java
│ │ └── SomeClass.java
│ └── resources
└── test
└── java
└── SampleTest.java
这些 class 定义:
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 测试报告:
此外,如果您想获得更多可能 surefire 报告插件无法提供帮助的报告,请查看 Jacoco,甚至可以查看 Sonar。
如何让 Maven/SureFire 生成一份 HTML 测试报告而不是 XML 一份? 适用于 SureFire、PMD 和其他质量控制工具。
所以它看起来像 here。
根据我们上面的对话,听起来您正在寻找一体式 XML -> HTML 转换。我不知道有这样的插件,但我相信 surefire 报告插件与其他一两个插件相结合可以让您到达需要的位置。
首先,我会查看 usage docs for the surefire-report plugin。此外,我整理了一个快速示例,说明如何通过组合 surefire、pmd 和 surefire 报告插件开始:
使用以下项目结构:
├── pom.xml
└── src
├── main
│ ├── java
│ │ ├── Main.java
│ │ └── SomeClass.java
│ └── resources
└── test
└── java
└── SampleTest.java
这些 class 定义:
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 测试报告:
此外,如果您想获得更多可能 surefire 报告插件无法提供帮助的报告,请查看 Jacoco,甚至可以查看 Sonar。