【发布时间】:2020-08-27 09:53:09
【问题描述】:
在我的 Spring 应用程序中,我有一部分依赖于 MongoDb,我必须对其进行测试。
我希望能够在本地和构建服务器上运行测试。
目前我正在尝试这样做,添加
testCompile group: 'de.flapdoodle.embed', name: 'de.flapdoodle.embed.mongo', version: '2.2.0'
作为依赖。
这个包从 mongodb.org 下载 mongo 可执行文件,提取它们并存储在本地。 虽然这在本地很有效,但在构建服务器上肯定会失败,因为它无法访问远程站点。
所以我想更改配置,使用工件存储库中的可执行文件,或者 - 如果需要 - 已添加到项目存储库中。
一段有趣的代码似乎是de.flapdoodle.embed.mongo.config.DownloadConfigBuilder
-
这表明可能使用了一些环境变量
EMBEDDED_MONGO_ARTIFACTS -
它显示了默认的下载源,但路径不是绝对的。所以我不知道,我的镜子需要如何构造。访问链接,我将被重定向。
private static class PlatformDependentDownloadPath implements IDownloadPath { @Override public String getPath(Distribution distribution) { if (distribution.getPlatform()==Platform.Windows) { return "https://downloads.mongodb.org/"; } return "https://fastdl.mongodb.org/"; } }
然后在来自 fladdoodle 的文档中,您会发现:
-
Customize Download URL
... Command command = Command.MongoD; IRuntimeConfig runtimeConfig = new RuntimeConfigBuilder() .defaults(command) .artifactStore(new ExtractedArtifactStoreBuilder() .defaults(command) .download(new DownloadConfigBuilder() .defaultsForCommand(command) .downloadPath("http://my.custom.download.domain/"))) .build(); ...
但同样,这个downloadPath似乎不是绝对的。
简单地说:
- 我需要如何构建我的下载镜像
- 如何配置下载路径以使用我的镜像 - 特别是关于 Spring 自动配置
【问题讨论】:
标签: spring mongodb spring-data-mongodb spring-test