是否可以在 Java 运行时使用单独的 JVM 执行精确的代码段



我正在从事一个自动化项目,我需要在每个测试用例中使用单独的JVM启动自动化Java应用程序。我正在考虑在每个测试用例执行之前启动新的 JVM。然后,在创建的 JVM 中执行测试用例。有没有可能这样做。

我试过ProcessBuilderRuntimeApache ANT。在这些方法中,我们可以提供一个类名,并使类在单独的JVM中执行。因此,提供类中应该有一个 main 方法。但不是精确的代码段。

我在这里错过了什么吗?有什么想法或建议吗?

测试框架所做的是有一个带有主内存的类,该类可以调用通过反射加载的类实例中的任何方法。

例如

在任何其他类中调用不带参数的静态方法。

public class Runner {
    public static void main(String[] args) throws Exception {
        String className = args[0];
        String methodName = args[1];
        Class.forName(className).getDeclaredMethod(methodName).invoke(null);
    }
}

调用java -cp . Runner AnyClass anyPublicStaticMethod,无需main即可运行该方法。

最新更新