mvn测试可以,但在mvn软件包中测试失败

时间:2018-09-21 07:32:42

标签: maven spring-boot protocol-buffers junit5 java-10

我们在Spring Boot项目中进行了JUnit 5测试,测试了创建Protobuf输出的控制器的响应。如果我从IDE(在团队中同时使用Eclipse和IntelliJ)中执行测试套件作为JUnit测试,则全部通过。如果我从终端运行mvn test,它们也会通过。但是,如果执行mvn package,则此测试失败。

我不知道这里有什么区别,testpackage中的测试阶段应该相同吗?这与我们如何依赖木星有关吗?

测试失败时,它将以406响应而不是预期的200响应结束。这与在上下文中未注册ProtobufHttpMessageConverter时的行为相同。令我困惑的是,该测试在测试阶段可以完美运行,为什么不执行包呢?

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <version>2.22.0</version>
  <dependencies>
    <dependency>
      <groupId>org.junit.platform</groupId>
      <artifactId>junit-platform-surefire-provider</artifactId>
      <version>1.2.0</version>
    </dependency>
    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter-engine</artifactId>
      <version>5.2.0</version>
    </dependency>
  </dependencies>
</plugin>
  ...
<dependencies>
  <dependency>
    <groupId>org.junit.platform</groupId>
    <artifactId>junit-platform-launcher</artifactId>
    <version>1.2.0</version>
    <scope>test</scope>
  </dependency>
  <dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-engine</artifactId>
    <version>5.2.0</version>
    <scope>test</scope>
  </dependency>
</dependencies>

这是测试失败时的输出:

Async:
Async started = false
 Async result = null

Resolved Exception:
         Type = org.springframework.web.HttpMediaTypeNotAcceptableException

 ModelAndView:
     View name = null
          View = null
         Model = null 

 FlashMap:
    Attributes = null

 MockHttpServletResponse:
        Status = 406
 Error message = null
       Headers = {}
  Content type = null
          Body = 
 Forwarded URL = null
Redirected URL = null
       Cookies = []

0 个答案:

没有答案