2015-02-08 92 views
0

我有兩個獨立的Junit測試用例。我設計了一個JSP頁面,每次從用戶獲得6個值。在servlet doPOST方法中,我旨在獲取這6個值。 那之後我在servlet中執行JUnit測試用例編寫下面的代碼,如何在JSP中通過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測試用例。

+0

是的喬。謝謝你的幫助。我知道了。使用下面的代碼庫,我得到了同時運行Junit測試用例的解決方案。線程t1 =新線程(new Runnable(){ 覆蓋 public void run(){ executeSomeCodeInP1(); } }); 線程T2 =新主題(新的可運行(){ @Override 公共無效的run(){ executeSomeCodeInP2();} }); t1.start(); t2.start(); //如果你想等待兩個線程完成前繼續, //「加入」當前線程 t1.join(); t2.join(); – Siva 2015-02-08 11:56:36

回答

0

如果你使用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> 

所以這裏將在兩個不同的線程運行的回聲,並在另一個線程執行的標籤。你可以通過指定多個單元測試來做同樣的事情。

+0

謝謝Almas。但我很困惑。我在Servlet中調用這兩個測試用例。以便我可以將這些案例的輸出發送給jsp。我不想在Junit類中做任何代碼更改。我想在servlet中做一些代碼更改。我在互聯網上搜索,但我有一些輸入像servlet和多線程中的異步處理..但我無法得到任何東西。 – Siva 2015-02-08 11:21:04

相關問題