我们正在尝试为JVM产品的验收测试提出一个概念,其中包括多个应用程序。我正在编写以下测试:
将在单个JVM中启动和停止多个JVM应用程序,不涉及EE容器。
将与这些应用程序进行交互并断言一些结果(写入日志文件,退出应用程序代码......)
我的第一个试验是一个maven
项目,Junit
项目使用Java ProcessBuilder
分发应用程序,例如:
new ProcessBuilder("java", app1, vmParameters).start();
//...
new ProcessBuilder("java", app2, vmParameters).start();
然后使用InputStream
和OutputStream
进行处理,但感觉非常麻烦。 JVM以surefirebooter***
罐子的形式启动,您无法真正看到正在发生的事情。
这些测试最终将在他们自己的Docker
容器中运行,可能会运行几天,我希望能够连接到容器并检查发生了什么。
另一种选择是直接使用脚本来启动/停止流程,但我希望有一些集成的报告功能。
我发现的大多数框架都被认为与EE容器一起使用,但我没有发现通过jars
方法启动的旧版main
。
任何人都想过如何做到这一点或知道适合这份工作的工具?