【问题标题】:Threaded Maven builds with sequential Unit Tests?使用顺序单元测试构建线程化 Maven?
【发布时间】:2012-01-17 11:32:29
【问题描述】:

使用 Maven 3,可以构建具有多个线程的项目,例如

mvn -T 4 clean install

由于我们在一致的数据库上设置了单元测试(并在执行期间操作数据),我们需要确保这些单元测试没有在并行执行中运行。我知道 Maven-Surefire-Plugin 有一个配置选项可以按顺序执行测试或启用并行执行:

<configuration>
   <parallel>classes</parallel>
</configuration>

当我将此配置留空时,测试应该按顺序执行,对吗?但是像上面那样使用多个 Maven-Threads (-T) 调用 Build 时仍然按顺序执行吗?

【问题讨论】:

    标签: testing maven junit maven-surefire-plugin


    【解决方案1】:

    据我了解和documentation,并行构建并行运行modules,而不是每个模块内的goals。在这种情况下,模块中的单元测试将按顺序运行,除非在surefire中配置为并行运行。

    【讨论】:

    • 感谢您的回复。但是“...并行运行模块”是什么意思?不是必须在每个模块上(并行)执行一个目标来“运行一个模块”吗?
    • @heinkunibert。的确。这正是 maven 在运行时会做的事情。
    • 但是,如果 Maven 在单独的模块上并行执行目标,则在项目中执行单元测试 ist sequential anymore, no matter how I configured surefire-plugin. Seems that I cant 只要我想要顺序执行单元测试,就可以利用线程化的 Maven 构建,对吗?
    • @heinkunibert。 maven 模块是一个单独的 maven 项目,而不是项目构建的一部分。因此,并行执行与多模块项目相关,而与单个项目无关。
    • 对不起,当谈到一个项目时,我的意思是一个多模块项目;-)。
    【解决方案2】:

    我认为您正在寻找的可能是here。这是关于surefire如何分叉和/或运行并行线程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-04
      • 1970-01-01
      • 2012-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多