2016-04-08 45 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测试用例。

相关问题