我有一个这样的项目结构:
Parent Project
- A
- B
- C
- D (Parent to D.1-3)
- D.1
- D.2
- D.3
-E
ABCE 是还包含单元测试的代码项目(OSGi 包),D.1、D.2、D.3 是使用 pax-exam 的集成测试,它们开始使用 jUnit 运行器。
ABCE 单元测试可以并行运行。D.1-3 不能并行运行。这很简单,我只是在我的父 pom 中告诉 surefire 并行运行所有内容,在 D 的 pom 中我告诉surefire 一次运行所有内容。D.1-3 有 D 作为父 pom。
好的,所以现在我有并行测试执行。我也非常想要并行构建。
如果我在 maven 中使用 -T 5 标志,这意味着并行运行多个模块。当涉及到surefire 时,这意味着我将有5 个surefire 实例,每个实例并行运行自己的测试。这也很好。
问题是 maven 可能会决定并行运行 D.1、D.2、D.3,然后无论我说什么,这些测试用例都会并行运行。
有什么方法可以覆盖 D.pom 中 maven 的 -T 标志吗?
或者任何其他方式强制部分构建进行序列化?除了将 D.1-3 移出该项目并移入另一个始终使用 -T 1 运行的项目之外。