【问题标题】:Maven Build Test Results Just Pass or FailMaven 构建测试结果只是通过或失败
【发布时间】:2016-04-01 17:33:16
【问题描述】:

在使用 Maven 构建时,我看到在运行 Junit 测试时会喷出大量日志信息。我正在使用 Spring Boot,因此我看到所有初始日志内容都在运行,并且希望查看各个测试故障以查看通过、失败或错误的数字。有没有允许这样做的插件?我以前见过它,但不知道如何在我的 pom 中修复它。

下面是我的 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>XXXXX</groupId>
<artifactId>XXXXX</artifactId>
<version>0.1</version>
<packaging>war</packaging>

<name>XXXX</name>
<description>XXXXX</description>

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

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <java.version>1.8</java.version>
    <jackson.version>2.7.0</jackson.version>
    <netflix.hystrix>1.5.1</netflix.hystrix>
    <netflix.servo>0.12.3</netflix.servo>
    <mockito.version>1.10.18</mockito.version>
    <org.aspectj-version>1.8.8</org.aspectj-version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>com.netflix.hystrix</groupId>
        <artifactId>hystrix-core</artifactId>
        <version>${netflix.hystrix}</version>
        <scope />
    </dependency>
    <dependency>
        <groupId>com.netflix.hystrix</groupId>
        <artifactId>hystrix-metrics-event-stream</artifactId>
        <version>${netflix.hystrix}</version>
    </dependency>
    <dependency>
        <groupId>com.netflix.servo</groupId>
        <artifactId>servo-core</artifactId>
        <version>${netflix.servo}</version>
        <!--servo's ver of guava conflicts with swagger, exclude it -->
        <exclusions>
            <exclusion>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>com.netflix.eureka</groupId>
        <artifactId>eureka-client</artifactId>
        <version>1.1.155</version>
        <exclusions>
            <exclusion>
                <groupId>javax.servlet</groupId>
                <artifactId>javax.servlet-api</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>com.netflix.archaius</groupId>
        <artifactId>archaius-core</artifactId>
        <version>0.7.4</version>
    </dependency>
    <dependency>
        <groupId>com.netflix.servo</groupId>
        <artifactId>servo-graphite</artifactId>
        <version>${netflix.servo}</version>
    </dependency>
    <dependency>
        <groupId>com.netflix.servo</groupId>
        <artifactId>servo-aws</artifactId>
        <version>${netflix.servo}</version>
    </dependency>
    <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-all</artifactId>
        <version>${mockito.version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.powermock</groupId>
        <artifactId>powermock-module-junit4</artifactId>
        <version>1.6.4</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.powermock</groupId>
        <artifactId>powermock-api-mockito</artifactId>
        <version>1.6.4</version>
        <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-core</artifactId>
      <version>${jackson.version}</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-annotations</artifactId>
      <version>${jackson.version}</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>${jackson.version}</version>
    </dependency>
    <!-- AspectJ -->
    <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjrt</artifactId>
        <version>${org.aspectj-version}</version>
    </dependency>
    <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjweaver</artifactId>
        <version>${org.aspectj-version}</version>
    </dependency>
    <dependency>
        <groupId>javax.inject</groupId>
        <artifactId>javax.inject</artifactId>
        <version>1</version>
    </dependency>
</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>
<reporting>
    <plugins>
        <!-- This will generate surefire reports for the project -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-report-plugin</artifactId>
            <version>2.17</version>
            <configuration>

            </configuration>
            <!-- 
            This should prevent surefire from rerunning tests but
            but no failsafe reports are generated
             -->
            <reportSets>
                <reportSet>
                    <reports>
                        <report>report-only</report>
                    </reports>
                </reportSet>
            </reportSets>
        </plugin>
    </plugins>
</reporting>

【问题讨论】:

  • 你想要一个插件来给你一个junit测试用例的报告,对吧?
  • 是的,基本上。喜欢:com.blah.test.Foos 1 通过,2 失败,3 错误 com.blah.test2.Bars 3 通过,0 失败,0 错误
  • @JoelHolmes 但您通常已经通过 Maven 获得此类报告,您项目的父 pom 是什么?可能某些默认行为已禁用
  • 我使用 spring-boot 作为父 pom。在测试期间记录输出方面,我看到的比我想要的要多得多。我宁愿什么都看不到,只看通过或失败的次数
  • 如果您不向我们展示您的配置,我们将无能为力。

标签: spring maven junit spring-boot


【解决方案1】:

我发现我需要做的就是告诉surefire插件重定向输出:

<plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-surefire-plugin</artifactId>
   <configuration>
       <redirectTestOutputToFile>true</redirectTestOutputToFile>
   </configuration>
</plugin>

【讨论】:

    【解决方案2】:

    您没有向我们展示您的配置,因此我们只能猜测如何为您提供帮助。 关闭无关日志的最常见方法是在appliation.properties 中配置日志级别:

    logging.level.org.springframework=WARN
    logging.level.org.hibernate=WARN
    

    这里是relevant part of Spring Boot documentation

    如果您在调试级别配置了 Spring 包,则 Spring Boot 运行会创建大量调试语句。因此,将 Spring 设置为日志级别 WARN(如上图所示)应该会过滤掉大部分日志输出。

    【讨论】:

    • 设置了这些参数后,似乎仍有大量数据被转储。这些是在 Maven 测试周期中拾取的吗?
    猜你喜欢
    • 1970-01-01
    • 2013-11-08
    • 2020-01-16
    • 1970-01-01
    • 2017-03-23
    • 2023-03-22
    • 1970-01-01
    • 2012-08-05
    • 2016-12-08
    相关资源
    最近更新 更多