Java 如何通过JSP在Servlet中并发运行多个JUNIT测试用例

Java 如何通过JSP在Servlet中并发运行多个JUNIT测试用例,java,jsp,servlets,junit,Java,Jsp,Servlets,Junit,我有两个独立的Junit测试用例。我设计了一个JSP页面,每次从用户处获取6个值。 之后,我在servlet中编写了以下代码来执行Junit测试用例 Junit test cass -1 and 2: Result result = JUnitCore.runClasses(Junit1.class); for (Failure failure : result.getFailures()) { System.out.println(failure.toString()); } R

我有两个独立的Junit测试用例。我设计了一个JSP页面,每次从用户处获取6个值。 之后,我在servlet中编写了以下代码来执行Junit测试用例

Junit test cass -1 and 2:

Result result = JUnitCore.runClasses(Junit1.class);
for (Failure failure : result.getFailures())
{
    System.out.println(failure.toString());
} 

Result result = JUnitCore.runClasses(Junit2.class);
for (Failure failure : result.getFailures())
{
    System.out.println(failure.toString());
}            

使用上述方法,它将逐个运行,而不是并发运行。有人能帮我同时执行两个Junit测试用例吗。

如果您使用TestNG,它提供了良好的多线程测试,并且与Junit测试兼容(您需要做一些更改)。例如,您可以运行如下测试:

@Test(threadPoolSize = 5, invocationCount = 10,  timeOut = 5000)
public void runConcurrently() {
  ...
}
这意味着doSomething()方法将被5个不同的线程调用10次

话虽如此,如果您谈论的是同时运行多个测试,我建议您看看ant task,其中在parallel标记中指定多个要并行运行的任务,如下所示,其中每个任务在其自己的线程中运行:

<target name="output-1-2-3-kill-notepad-output-4">
    <echo message="1" />
    <parallel>
        <echo message="2" />
        <exec executable="notepad.exe" timeout="3000" />
        <echo message="3" />
    </parallel>
    <echo message="4" />
</target>


所以在这里,它将在两个不同的线程中运行echo,并在另一个线程中执行tag。您也可以通过指定多个单元测试来实现这一点。

谢谢Almas。但我很困惑。我在Servlet中调用这两个测试用例。这样我就可以将这些案例的输出发送到jsp。我不想在Junit类中做任何代码更改。我想在servlet中做一些代码更改。我在互联网上被搜索过,但我得到了一些输入,比如servlet中的异步处理和多线程..但我什么也得不到。是的,乔。谢谢你的帮助。我得到了它。通过下面的代码库,我获得了并发运行Junit测试用例的解决方案。线程t1=新线程(新的Runnable(){Override public void run(){executeSomeCodeInP1();}});线程t2=新线程(新的Runnable(){@Override public void run(){executeSomeCodeInP2();}});t1.start();t2.start();//如果要在继续之前等待两个线程完成,请//“连接”当前线程t1.join();t2.连接();