Scala / Gradle 项目...在哪里存储单元测试所需的超大文件?
Posted
技术标签:
【中文标题】Scala / Gradle 项目...在哪里存储单元测试所需的超大文件?【英文标题】:Scala / Gradle project ... where to store files required for unit testing that are super large ? 【发布时间】:2013-12-10 00:09:08 【问题描述】:我将 Scala 与 gradle 和 ScalaTest 一起使用。
只是想知道......人们在哪里存储“大”(65 MB)但单元测试需要的文件对象。我的应用程序对如此大的文件进行图像处理。
我有一个函数可以获取此类文件的本地链接并计算有用的指标:-)
我想对这个函数进行单元测试。我想对这个函数进行大约 10 个单元测试,所以我正在查看 10 个不同的图像文件(65 * 10 = 650MB)......我应该在哪里存储这些数据?有什么想法吗 ?一种想法是将其存储在 S3 上,并在每次启动单元测试时自动下载?将数据存储在源代码存储库中会很糟糕,因为它会使下载源代码的过程变得如此漫长......有什么想法吗?你们有什么感想 ?
干杯!
【问题讨论】:
【参考方案1】:要么通过某个 URL 访问这些文件,然后从您的测试中下载它们(如果它们在本地不存在),或者将它们打包为 Maven/Ivy 依赖项,将它们发布到 Maven/Ivy 存储库,然后拉取它们在使用 Gradle 的依赖管理。对这么大的文件使用版本控制通常不是一个好主意。
【讨论】:
【参考方案2】:好吧,如果您使用 Git.... 我会使用 Git Submodules,如果您不使用 git,我仍然会使用单独的 git 存储库来托管大型但不是真的那么大的文件。
事情就是这样。按照今天的标准,这些文件并没有那么大,作为开发人员,如果我可以对其进行源代码控制...我对其进行源代码控制,除非它:
永远不会改变和公开可用(即已发布的库)。 非常大,以千兆字节计如果你不使用 git,我想你可以在单元测试中写一些东西来下载文件,但是你可能想要对文件进行校验和以进行验证,如果文件发生变化,那不是很好只下载 delta..... git 所做的所有事情。
说真的,如果您确实想从单元测试中自动下载文件,请查看jgit,但我只会包含开发人员说明和/或构建脚本以手动执行 git 以下载文件。
【讨论】:
以上是关于Scala / Gradle 项目...在哪里存储单元测试所需的超大文件?的主要内容,如果未能解决你的问题,请参考以下文章
Google 应用引擎的 gradle 单元测试在哪里期望 persistence.xml?
Gradle + Scala Plugin + Zinc 1.3.5 将 Protobuf 3.7 泄漏到编译器类路径
遇到问题--scala-gradle--Connect to jcenter.bintray.com:443 [jcenter.bintray.com/34.95.74.180] failed: co
遇到问题--scala-gradle--Connect to jcenter.bintray.com:443 [jcenter.bintray.com/34.95.74.180] failed: co
遇到问题--scala-gradle--Connect to jcenter.bintray.com:443 [jcenter.bintray.com/34.95.74.180] failed: co