2016-04-08 62 views
1

我有一組寫入JUnit的測試用例。由於這些測試用例依賴於servlet容器,因此我想從servlet運行它們。例如,如果我將Test類的完全限定類名稱傳遞給servlet,它應該能夠運行該測試用例。 我在Web應用程序的類路徑中有這些測試用例。JUnit - 從Web應用程序運行測試用例

回答

0
/** 
* The various JUNIT classes should be passed as the <code>class</code> request paramter in the URL. 
* @param request 
* @param response 
*/ 
private void executeJUNITTestCases(HttpServletRequest request, HttpServletResponse response){ 
    response.setContentType("text/plain"); 
    //Pass the class names of the Test cases in the URL parameter "class" 
    String[] className = request.getParameterValues("class"); 
    try{ 
     if(className = null || className.length == 0){ 
      PrintWriter writer = response.getWriter(); 
      JSONObject obj = new JSONObject(); 
      obj.put("error", "Class names should be provided as parameter values of key [class]"); 
      writer.write(obj.toString()); 
      return; 
     } 

     OutputStream out = response.getOutputStream(); 

     final PrintStream pout = new PrintStream(out); 
     new JUnitCore().runMain(new JUnitSystem(){ 

      public PrintStream out(){ 
       return pout; 
      } 

      public void exit(int arg0){} 
     }, className); 
     out.close(); 
    } 
    catch(IOException e){ 
     e.printStackTrace(); 
    } 

上面的代碼可以幫助我們調用Web應用程序上下文中的JUnit測試用例。

相關問題