【问题标题】:Tests taking more time than specified timeout using maven surefire使用 maven surefire 测试花费的时间超过指定的超时时间
【发布时间】:2019-10-14 03:43:27
【问题描述】:

我的 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 秒超时?

【问题讨论】:

  • 你有没有试过写这个不带字母s的配置?例如。 40

标签: java maven testing timeout maven-surefire-plugin


【解决方案1】:

文档指定您必须启用选项

平行

你必须设置 &lt;parallelTestTimeoutForcedInSeconds&gt;5&lt;/parallelTestTimeoutForcedInSeconds&gt; 强制当前运行超时。

如果你正在使用

parallelTestTimeoutInSeconds

只有排队的线程会停止执行

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

【讨论】:

  • 抱歉,我没有添加整个 pom.xml,我正在编辑问题以添加其他详细信息。我已经有并行标签了。
  • 我设置了这两个属性? parallelTestTimeoutForcedInSeconds 和 parallelTestTimeoutInSeconds
  • 您没有在第一篇文章中提供它们,这就是我应用它们的原因。那么结果如何?
  • 这没有帮助,一些测试仍然需要更多时间。
猜你喜欢
  • 2023-01-30
  • 2023-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-07
  • 2023-04-09
相关资源
最近更新 更多