有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用maven surefire进行java测试的时间超过指定的超时时间

我在pom中设置了所有超时属性。xml

    <plugin>
       <groupId>org.apache.maven.plugins</groupId>
       <artifactId>maven-surefire-plugin</artifactId>
       <version>3.0.0-M3</version>
       <configuration>              
          <forkCount>${surefire.forkNumber}</forkCount>
          <reuseForks>false</reuseForks>
          <argLine>-Xmx2G -XX:MaxMetaspaceSize=2G </argLine>
          <parallel>methods</parallel>
          <threadCount>${surefire.threadCount}</threadCount>
          <forkedProcessTimeoutInSeconds>40s</forkedProcessTimeoutInSeconds>
          <forkedProcessExitTimeoutInSeconds>40s</forkedProcessExitTimeoutInSeconds>
          <parallelTestsTimeoutInSeconds>30s</parallelTestsTimeoutInSeconds>
          <parallelTestsTimeoutForcedInSeconds>30s</parallelTestsTimeoutForcedInSeconds> 
       </configuration>
    </plugin>

但我仍然看到一些测试需要超过40秒的时间(一个测试甚至需要17分钟)。可能的原因是什么?我如何使用surefire强制执行30秒超时


共 (1) 个答案

  1. # 1 楼答案

    文档指定必须启用选项

    parallel

    你一定要准备好 <parallelTestTimeoutForcedInSeconds>5</parallelTestTimeoutForcedInSeconds> 强制当前运行超时

    如果你正在使用

    parallelTestTimeoutInSeconds

    only the queued threads will be stopped from executing

    参考:http://maven.apache.org/surefire/maven-surefire-plugin/test-mojo.html