繁体   English   中英

如果我的Java测试资源比较大(超过100MB),应该放在哪里?

[英]Where should I place my java test resources if they're relatively large (over 100MB)?

我正在开发一个具有Maven结构的项目,我想开始进行一些扩展测试,但是这样做需要大量资源。 有什么建议可以放置这些资源? 他们应该进入``src / main / test / resources''还是从其他仓库中取出?

重新回答您的问题

有什么建议可以放置这些资源? [...]

我知道我可以将它们放在'src / main / test / resources'[...]

我正在考虑将更多资源用于集成测试。 开发人员不一定要从版本控制中提取100兆的资源来进行可能无法运行的测试。

回答

您可能会更改为多模块项目布局,例如:

      multi-module project
              |
              |
          +---+-----------------+ 
          |                     |
source and unit test    integration test
         prj                   prj

那么您的开发人员就只能拉source and unit test prj

显然,集成测试prj应该对source and unit test prj具有编译范围的依赖性。

Maven为您提供了答案。

如果您将资源包括在“ src / main / test / resources”中(是正确的)...

请记住,在最终的jar中运行安装将排除测试,是的! 资源也被排除在外...

此外,您可以跳过测试(也包括编译)以提高编译性能...(更多信息,请访问: http : //maven.apache.org/surefire/maven-surefire-plugin/examples/skipping-test.html

我希望这可以帮助你...

更新:

还看一看“ 如何在项目中显示* plugins *的Maven依赖树?

我们应该考虑将资源从开发人员环境中排除的原因。 我只是回答您的问题,告诉您Maven处理类似情况的常见做法...

如果您说这实际上对您来说是个问题,那么可能是一个主意,例如,将另一个模块中的所有测试和资源分离开来……包括您的父pom中的测试和资源……或者定义一个配置文件(集成测试),其中将主要包含测试资源,以及一个配置文件(开发测试),该配置文件仅会引导对单个开发人员有用的测试...

我个人认为,除非有特殊原因(紧急),否则不仅可以进行大量的占用测试,还可以安全地进行测试包中的所有资源...

您应该在CI服务器上而不是在开发人员计算机上运行这种大型集成测试。

最好在另一台机器上运行长时间的集成测试,以减少开发测试的周期。 无论如何,您都不想在常规版本中运行它,创建一个配置文件并在CI上运行它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM