Maven上的每个模块测试设置

Maven上的每个模块测试设置,maven,Maven,Maven有没有办法在测试每个模块之前运行一段代码作为设置?每个模块的清理也将是一个加号 举个例子,假设我有模块A和B,测试类AA、AB、BA、BB和BC,每个都包含一对测试方法。因此模块A将运行测试类AA和AB,第一个包含测试方法AA.1和AA.2,第二个包含测试方法AB.1和AB.2 鉴于此,我希望测试设置如下运行: @BeforeSuite @BeforeTest @BeforeGroups @BeforeClass @BeforeMethod 模块A之前 AA班前 方法AA.1之前 方

Maven有没有办法在测试每个模块之前运行一段代码作为设置?每个模块的清理也将是一个加号

举个例子,假设我有模块A和B,测试类AA、AB、BA、BB和BC,每个都包含一对测试方法。因此模块A将运行测试类AA和AB,第一个包含测试方法AA.1和AA.2,第二个包含测试方法AB.1和AB.2

鉴于此,我希望测试设置如下运行:

@BeforeSuite
@BeforeTest
@BeforeGroups
@BeforeClass
@BeforeMethod
  • 模块A之前
  • AA班前
  • 方法AA.1之前
  • 方法AA.2之前
  • AB班之前
  • 方法AB.1之前
  • 方法AB.2之前
  • 在模块B之前
  • BA课前
  • 诸如此类
  • 设置大部分内容很容易,但我看不到执行步骤1和8的方法,我想这样做

    编辑


    是的,这应该是一种集成测试,但事实并非如此,我们正在讨论几十个模块,更不用说测试了。我主要需要为每个模块准备这些资源,以便使模块测试能够并行运行。

    这不是一个很好的解决方案,但您始终可以将任意插件和目标附加到
    流程测试类
    构建阶段,该阶段默认在
    测试
    之前运行。看见显然,这段代码不会在与测试代码相同的JVM中运行,但是如果您希望准备一些外部资源,那么它可能是合适的


    如果您正在准备外部资源,那么您可能真的在执行集成测试,因此您希望附加到
    预集成测试阶段。

    这听起来像是集成测试。这意味着您可以使用
    集成前测试
    集成测试
    集成后测试
    来定义进行适当测试所需的设置等。您可以将任何插件绑定到
    预集成测试
    阶段,以进行某种设置(如通过SQLMaven插件进行数据库设置等)

    此外,您可以使用哪些支持组等,而且它还支持以下内容:

    @BeforeSuite
    @BeforeTest
    @BeforeGroups
    @BeforeClass
    @BeforeMethod
    

    您可以在JUnit中通过定义一个嵌套的测试套件来实现这一点,方法是在模块的子套件上使用
    @Before
    @After
    方法

    然后,您只需要运行新的测试套件,而不是单独的测试

    更雄心勃勃的是,您可以根据命名约定进行此操作,而无需指定所有涉及的单独测试,方法是:

    • 设置动态顶级测试
    • 使用番石榴(或类似产品)查找所有可见的测试套件和测试类
    • 根据包层次结构将它们添加到顶层或嵌套的测试套件中

    JUnit只是众多测试框架中的一个。但我对一些事情很好奇。。。是否有任何自动定义测试套件的方法,或者我必须键入数百个类名?我的一个模块有228个测试类——手工布线无法扩展。尽管junit是事实上集成测试最常用的工具,但它在这方面肯定缺少一些功能。我已经更新了我的答案,并就如何添加它们提出了一些建议。