如何使用--auth选项运行flapdoodle MongodStarter

时间:2015-11-10 07:20:05

标签: mongodb testing

我最近将mongoDB配置为在启动进程时使用--auth。

现在我需要更改访问Javacode和测试。对于测试,我使用像MongodStarter这样的flapdoodle工具。

http://www.programcreek.com/java-api-examples/index.php?api=de.flapdoodle.embed.process.config.IRuntimeConfig

有一些示例代码

但我仍然需要帮助来构建正确的代码以使用--auth选项启动MongodStarter。 例如,我可以这样做

MongodStarter runtime = MongodStarter.getDefaultInstance();
    IMongoCmdOptions cmdOptions = new MongoCmdOptionsBuilder.MongoCmdOptions(null, null, true, false, false, false, false, true, true)
    def mongodConfig = new MongodConfigBuilder.ImmutableMongodConfig(Version.V3_0_4, new Net(27017, Network.localhostIsIPv6()),new Timeout(), cmdOptions, "CT.pid", new Storage(), false, null, new HashMap())
    mongodExe = runtime.prepare(mongodConfig);
    mongod = mongodExe.start();
    mongo = new Mongo("localhost", 27017);

但是在.MongoCmdOptions() - 方法中有很多参数,我不关心这些参数,也不知道合适的值。只有第8个是我想要使用的那个。它是--auth param。用其他值填充其他值,我得到例外。

我与MongodConfigBuilder.ImmutableMongodConfig()有类似的问题。我给它添加了一些幻想值,因为它有很多。

你能给我一个我可以测试的工作示例配置吗?我现在精心制作了几天,但仍未找到配置类型和值的良好组合。我可以想象,有一种更简单的方法,但我找不到一个例子。

1 个答案:

答案 0 :(得分:1)

This "embedded-services" library具有flapdoodle's Embedded MongoDB内置的身份验证配置。您想要的完整工作示例位于MongoEmbeddedService.java fileline 179

使用此工具而不是编写自己的工具并不是一个坏主意。否则,请确保自己创建管理员用户。