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 项目...在哪里存储单元测试所需的超大文件?的主要内容,如果未能解决你的问题,请参考以下文章

gradle项目中如何支持java与scala混合使用?

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