【问题标题】:How to run multiple JUNIT test cases concurrently in Servlet via JSP [duplicate]如何通过JSP在Servlet中同时运行多个JUNIT测试用例[重复]
【发布时间】:2015-02-08 10:41:36
【问题描述】:

我有两个独立的 Junit 测试用例。我设计了一个 JSP 页面来一次从用户那里获取 6 个值。在 servlet doPOST 方法中,我旨在获取这 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 测试用例。

【问题讨论】:

  • 是的,乔。谢谢你的帮助。我知道了。使用下面的代码库,我得到了同时运行 Junit 测试用例的解决方案。线程 t1 = new Thread(new Runnable() { Override public void run() { executeSomeCodeInP1(); } });线程 t2 = new Thread(new Runnable() { @Override public void run() { executeSomeCodeInP2(); } }); t1.start(); t2.start(); // 如果你想等待两个线程都完成后再继续, // “加入”当前线程 t1.join(); t2.join();

标签: java jsp servlets junit


【解决方案1】:

如果您使用 TestNG,它提供了开箱即用的良好多线程测试,并且与 JUnit 测试兼容(您需要进行一些更改)。例如,您可以运行这样的测试:

@Test(threadPoolSize = 5, invocationCount = 10,  timeOut = 5000)
public void runConcurrently() {
  ...
}

这意味着 doSomething() 方法将被 5 个不同的线程调用 10 次。

话虽如此,如果您正在谈论同时运行多个测试,我建议您查看 ant 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 并在另一个线程中执行标记。你可以通过指定多个单元测试来做同样的事情。

【讨论】:

  • 感谢阿尔马斯。但我很困惑。我在 Servlet 中调用这两个测试用例。这样我就可以将这些案例的输出发送到 jsp。我不想在 Junit 类中做任何代码更改。我想在 servlet 中做一些代码更改。我在互联网上进行了搜索,但我得到了一些输入,例如 servlet 和多线程中的异步处理..但我无法从中得到任何东西。
猜你喜欢
  • 2017-05-11
  • 1970-01-01
  • 2020-06-26
  • 1970-01-01
  • 2012-02-06
  • 1970-01-01
  • 2017-08-09
  • 2011-03-20
  • 1970-01-01
相关资源
最近更新 更多