有没有办法在两个不同的jvm上运行相同的junit测试

时间:2018-02-21 14:38:26

标签: java

@Test
    public void testMain1() throws Exception {

        Runnable t1 = new Runnable() {
            public void run() {
                String[] str1 = {"noproxyconfig/serverA.dat"};
                try {
                    SIMLConcentratorMain.main(str1);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        };

        Runnable t2 = new Runnable() {
            public void run() {
                String[] str2 = {"noproxyconfig/serverB.dat"};
                try {
                    SIMLConcentratorMain.main(str2);
                } catch (Exception e) {
                    e.printStackTrace();
                }

            }
        };
        new Thread(t1).start();
        new Thread(t2).start();
        TimeUnit.SECONDS.sleep(5);
}

基本上我试图用不同的参数(启动两个服务器)启动main方法两次。现在我使用多线程实现这一点,但我认为它在同一个JVM中运行。但我想在不同的JVM中启动两个服务器。我创建了Juint测试并创建了两个线程并调用两个线程。

1 个答案:

答案 0 :(得分:0)

使用远程方法调用(RMI),您可以在两台不同的计算机上运行(因此两台JVM)

您可以使用虚拟机

1 - 创建Rmi Methode

在许多机器上启动服务器

3 - 开始测试