使用maven-failsafe-plugin时,集成测试应存储在哪里?

我是否必须将集成测试src/test与其余的单元测试放在一起,并仅通过诸如*Integr*Test,的模式将它们区分开来*ITTest,或者它们可以存在src/it(开发Maven插件并使用时就是这种情况maven-

invoker-plugin)?

我之所以这样问是因为,对我来说,如果单元测试和集成测试都放在同一位置,那看起来还不够干净(即使它们是通过Maven配置文件控制的)。

回答:

默认情况下,第一个maven-fails-plugin会在另一个生命周期阶段(集成测试)中运行,就像maven-surefire-

plugin(测试)一样。此外,如果您想检查集成测试是否失败,则可以将maven-failsafe-plugin配置verify为在post-

integration-test测试阶段运行目标。可以自由配置。

我想到一个问题。您有10个模块,现在想进行集成测试?它们属于哪个模块?最好是有一个单独的模块,因为它们不属于10个模块。

除此之外,已经在默认生命周期中配置了maven-surefire-

plugin。是的,一个补充目标是一个主意,但这会使用户混淆使用相同关系的插件。因此,关注点分离在这里很重要。除了整个默认配置外…这些插件共享更大的代码库,但有区别…

Tunaki已经提到的是pre-integration-test,用于设置服务器等之integration-

test类的东西,以及分阶段关闭服务/服务器之类的东西post-integration-test。这在单元测试中永远不会发生。

使用单独的模块通常可以更轻松地设置IT,这意味着与单元测试相比,它们具有不同的依赖项(类路径)。例如Arquillian.org之类的东西从未在单元测试中使用过。这不能在单个模块中处理…还有一件好事是这里的关注点分离。

此外,默认情况下无法对集成测试进行并行化,而按定义可以进行单元测试,否则就不能进行单元测试。

那么文件夹的布局呢?在集成测试模块中,您可以简单地使用src/test/java文件夹,这意味着您不需要补充配置等(例如,通过build-helper-

maven-plugin等),这使它更容易并且遵循配置范式上的更多约定。

不要忘记,您可以更好地控制构建(CI)中正在运行的内容。

还有另一个重要提示。通常,集成测试通常与基础结构相关,因此有时忽略那些可以通过使用checkmaven-failsafe-

plugin目标简单处理的故障可能会有用。

可以在此处找到IT模块的示例。

以上是 使用maven-failsafe-plugin时,集成测试应存储在哪里? 的全部内容, 来源链接: utcz.com/qa/406523.html

回到顶部