2016-09-27 245 views
2

正如標題所示,我試圖在執行maven項目時生成JUnit結果的HTML報告。我被告知去看看另一個人的maven-surefire-report插件,看起來它有我想要的,但我似乎無法獲取HTML文件來生成。我正在尋找只生成一個HTML文件,然後我可以把它放入我的老闆的電子郵件。我並不想真的想把結果發佈到網站上(至少目前還沒有)。未使用Maven-Surefire報告插件生成報告

這是我的pom部分看起來像surefire(不要擔心缺少標籤,我正在複製和粘貼相關部分,並嘗試不粘貼公司信息,但知道我有正確的開/關標籤):

編輯:增加了完整的pom。

<?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>myGroup</groupId> 
    <artifactId>myArtifact</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>jar</packaging> 

    <name>myName</name> 
    <description>Demo project for Spring Boot</description> 

    <parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.4.0.RELEASE</version> 
     <relativePath/> <!-- lookup parent from repository --> 
    </parent> 

    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 
     <java.version>1.8</java.version> 
    </properties> 

    <dependencies> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-data-jpa</artifactId> 
     </dependency> 
     <!-- https://mvnrepository.com/artifact/net.sourceforge.jtds/jtds --> 
     <dependency> 
      <groupId>net.sourceforge.jtds</groupId> 
      <artifactId>jtds</artifactId> 
      <version>1.3.1</version> 
     </dependency> 
     <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-test --> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-test</artifactId> 
      <version>1.4.0.RELEASE</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-configuration-processor</artifactId> 
      <optional>true</optional> 
     </dependency> 
     <!-- https://mvnrepository.com/artifact/org.springframework/spring-context --> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-context</artifactId> 
      <version>4.3.2.RELEASE</version> 
     </dependency> 

     <dependency> 
      <groupId>org.aspectj</groupId> 
      <artifactId>aspectjweaver</artifactId> 
      <version>1.6.5</version> 
     </dependency> 

     <!-- https://mvnrepository.com/artifact/org.springframework/spring-beans --> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-beans</artifactId> 
      <version>4.3.2.RELEASE</version> 
     </dependency> 

     <!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core --> 
     <dependency> 
      <groupId>org.apache.logging.log4j</groupId> 
      <artifactId>log4j-core</artifactId> 
      <version>2.6.2</version> 
     </dependency> 
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>RELEASE</version> 
     </dependency> 

     <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind --> 
     <dependency> 
      <groupId>com.fasterxml.jackson.core</groupId> 
      <artifactId>jackson-databind</artifactId> 
      <version>2.0.2</version> 
     </dependency> 

     <dependency> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-surefire-report-plugin</artifactId> 
      <version>2.19.1</version> 
      <type>maven-plugin</type> 
     </dependency> 

     <dependency> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-surefire-plugin</artifactId> 
      <version>2.19.1</version> 
      <type>maven-plugin</type> 
     </dependency> 
    </dependencies> 

    <reporting> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-surefire-report-plugin</artifactId> 
       <version>2.19.1</version> 
      </plugin> 

      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-surefire-plugin</artifactId> 
       <version>2.19.1</version> 
      </plugin> 

      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-site-plugin</artifactId> 
       <version>3.5.1</version> 
       <configuration> 
        <outputDirectory>${basedir}/target/site/surefire-report.html</outputDirectory> 
       </configuration> 
       <!--<configuration>--> 
        <!--<outputDirectory>C:\Users\ab66378\Desktop</outputDirectory>--> 
       <!--</configuration>--> 
      </plugin> 
     </plugins> 
    </reporting> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
      </plugin> 
     </plugins> 
    </build> 


</project> 

據我所知,根據指南和我看過的內容,這是我所需要的。只是pom依賴和報告插件部分,但我仍然沒有看到生成的HTML文件。

我有一種感覺,我錯過的部分會非常小,但我似乎無法找到它。

+1

你有生成的目標輸出文件的路徑?應該在那裏。如果不是,那麼可能是您沒有爲報告配置輸出目錄。 – robx

+0

我確實嘗試了一些輸出目錄,但我仍然找不到任何東西。我第一次嘗試將輸出添加到桌面上,以便我可以看到它是否正常工作。下面是它的樣子: C:\ Users \ username \ Desktop user1818298

回答

0

默認報告應位於$ {BASEDIR} /target/site/surefire-report.html

我相信你可能需要分別包括在插件/依存Maven的萬無一失,插件和JUnit。

萬無一失報告插件會自動解析匹配$ {BASEDIR} /目標/萬無一失的報告測試 - 的.xml文件,但我相信你需要的Maven的萬無一失,插件,以便產生所述測試。 xml文件

這是插件的文檔。一種方法可能是運行構建並查看是否正在生成TEST - *。xml文件。

http://maven.apache.org/surefire/maven-surefire-plugin/index.html

+0

非常感謝Dan的回覆。這是一個令我困惑的部分,我相信這是因爲我以前沒有很多經驗來設置這樣的事情。我真的寫$ {basedir}還是隻是我自己編碼的目錄的佔位符?我沒有太多的經驗搞亂路徑和創建文件,什麼不是,所以它可能會作爲一個新問題:) – user1818298

+0

$ {baseDir}是你pom駐留的導演。你可以輸入它,maven將解析它 –

+0

如果你仍然有問題發佈你的整個pom可能會幫助進一步確定問題 –

0

配置如下

<configuration> 
<outputDirectory>${basedir}/target/newsite</outputDirectory> 
</configuration> 

使用獨立的工具,您可以更改像下面

mvn surefire-report:report -DoutputDirectory=newpath 
+0

嘿,那裏Arunakiran - 你是什麼意思的「在這裏輸入代碼」outputDirectory標籤下面?我應該將自己的代碼添加到下面的pom字段還是通常在那裏的?謝謝! – user1818298

+0

這是一個錯字,我編輯過這個帖子 –