我正在使用 DynamoDB 本地进行单元测试。它不错,但是有一些缺点。具体来说:
我想要做的是将 DynamoDB 本地 jar 和它所依赖的其他 jar 放在我的 test/resources
目录中(我用 Java 编写)。然后,在每次测试之前,我会启动它,用 -inMemory
运行,在测试之后,我会停止它。这样,任何人下载 git 回购都可以获得运行测试所需的所有内容的副本,而且每个测试都是独立于其他测试的。
我已经找到了一个办法,让这个工作,但它的丑陋,所以我正在寻找其他选择。我的解决方案是。然后在 @Before
方法中,我将它解压缩到一个临时目录中,并启动一个新的 Java 进程来执行它。这很有效,但它很丑陋,而且有一些缺点:
$PATH
上的 Java 可执行文件看来应该有更简单的办法。毕竟,DynamoDB Local 只是 Java 代码。难道我不能以某种方式要求 JVM 分叉自身并查看内部资源以构建类路径吗?或者,更好的情况是,我不能从其他线程调用 DynamoDB Local 的 main
方法,这样就可以在单个进程中完成所有操作了吗?有什么想法吗?
附言: 我知道交流发电机,但它似乎有其他缺点,所以我倾向于坚持亚马逊的支持的解决方案,如果我可以使它的工作。