首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当使用maven-故障安全插件时,集成测试应该存储在哪里?

当使用maven-故障安全插件时,集成测试应该存储在哪里?
EN

Stack Overflow用户
提问于 2016-06-23 17:21:17
回答 2查看 5K关注 0票数 11

我是否必须将我的集成测试与我的单元测试的其余部分放在src/test下,并通过*Integr*Test*ITTest之类的模式来区分它们,或者它们是否在src/it中(就像开发Maven插件和使用maven-invoker-plugin时那样)?

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-06-24 12:36:14

首先,maven-fails默认情况下运行在另一个生命周期阶段(集成-测试),就像maven-surefire-plugin (测试)所做的那样。此外,如果您愿意检查集成测试是否失败,您可以配置maven-故障安全插件,以便在verify测试阶段运行post-integration-test目标。这可以自由配置。

我脑子里有一个问题。您有10个模块,现在要进行集成测试吗?它们属于哪个模块?所以最好是有一个单独的模块,因为它们不属于10个模块中的任何一个。

除此之外,maven-surefire-plugin已经在默认生命周期中进行了配置。是的,一个补充的目标将是一个想法,但它会混淆用户使用相同的插件在不同的关系。因此,分离关注点在这里很重要。除了整个默认的configurations...Those插件共享一个更大的代码基础,但有差异.

此外,Tunaki已经提到的是pre-integration-test,用于设置服务器等integration-test,以及在post-integration-test阶段关闭服务/服务器。这种情况永远不会发生在单元测试中。

使用单独的模块通常可以简化it的设置,这意味着与单元测试有不同的依赖关系(类路径)。例如,像Arquillian.org这样的东西从未在单元测试中使用过。这不能在一个单一的module...also中处理,一个好的方面就是这里的关注点分离。

此外,集成测试在默认情况下不能被平分,而单元测试可以定义为单元测试,否则它们就不是单元测试。

那么文件夹布局呢?在集成测试模块中,您可以简单地使用src/test/java文件夹,这意味着您不需要补充配置等(例如,通过build maven-plugin等)。这使得它更容易,并且更遵循传统的配置范式。

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

还有另一个重要的提示。通常,集成测试通常与基础设施相关,因此,有时忽略那里的故障可能是有用的,可以简单地使用maven-故障安全插件的check目标来处理.

IT模块的一个示例可以找到这里

票数 4
EN

Stack Overflow用户

发布于 2016-06-23 19:14:29

您是正确的,src/it是打算用于插件的集成测试。在标准目录布局中提到了这一点。

默认情况下,maven-failsafe-plugin将在${project.build.testSourceDirectory}中查找您的集成测试,这是一样的作为单元测试的maven-surefire-plugin。默认情况下,这对应于src/test/java。通过遵循命名约定使集成测试变得不同

代码语言:javascript
复制
<includes>
  <include>**/IT*.java</include>
  <include>**/*IT.java</include>
  <include>**/*ITCase.java</include>
</includes>

这与单元测试的命名约定不同:

代码语言:javascript
复制
<includes>
  <include>**/Test*.java</include>
  <include>**/*Test.java</include>
  <include>**/*TestCase.java</include>
</includes>

因此,虽然它们驻留在同一个源文件夹(src/test/java)中,但名称上的差异清楚地区分了它们。而且,这是默认的设置,因此不需要额外的配置。

尽管如此,你还可以有其他选择:

  • 将集成测试放在不同的源文件夹中。这需要一些配置才能使其工作:您需要使用build-helper-maven-plugin:add-test-source目标将自定义文件夹添加为测试源文件夹。
  • 使用一个只包含集成测试的不同模块(如果您有一个多模块Maven项目)。
票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37998040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档