Maven上的每个模块测试设置
Maven有没有办法在测试每个模块之前运行一段代码作为设置?每个模块的清理也将是一个加号 举个例子,假设我有模块A和B,测试类AA、AB、BA、BB和BC,每个都包含一对测试方法。因此模块A将运行测试类AA和AB,第一个包含测试方法AA.1和AA.2,第二个包含测试方法AB.1和AB.2 鉴于此,我希望测试设置如下运行: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之前 方
@BeforeSuite
@BeforeTest
@BeforeGroups
@BeforeClass
@BeforeMethod
是的,这应该是一种集成测试,但事实并非如此,我们正在讨论几十个模块,更不用说测试了。我主要需要为每个模块准备这些资源,以便使模块测试能够并行运行。这不是一个很好的解决方案,但您始终可以将任意插件和目标附加到
流程测试类
构建阶段,该阶段默认在测试
之前运行。看见显然,这段代码不会在与测试代码相同的JVM中运行,但是如果您希望准备一些外部资源,那么它可能是合适的
如果您正在准备外部资源,那么您可能真的在执行集成测试,因此您希望附加到
预集成测试阶段。这听起来像是集成测试。这意味着您可以使用集成前测试
、集成测试
和集成后测试
来定义进行适当测试所需的设置等。您可以将任何插件绑定到预集成测试
阶段,以进行某种设置(如通过SQLMaven插件进行数据库设置等)
此外,您可以使用哪些支持组等,而且它还支持以下内容:
@BeforeSuite
@BeforeTest
@BeforeGroups
@BeforeClass
@BeforeMethod
您可以在JUnit中通过定义一个嵌套的测试套件来实现这一点,方法是在模块的子套件上使用@Before
和@After
方法
然后,您只需要运行新的测试套件,而不是单独的测试
更雄心勃勃的是,您可以根据命名约定进行此操作,而无需指定所有涉及的单独测试,方法是:
- 设置动态顶级测试
- 使用番石榴(或类似产品)查找所有可见的测试套件和测试类
- 根据包层次结构将它们添加到顶层或嵌套的测试套件中
JUnit只是众多测试框架中的一个。但我对一些事情很好奇。。。是否有任何自动定义测试套件的方法,或者我必须键入数百个类名?我的一个模块有228个测试类——手工布线无法扩展。尽管junit是事实上集成测试最常用的工具,但它在这方面肯定缺少一些功能。我已经更新了我的答案,并就如何添加它们提出了一些建议。