<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    我的漫漫程序之旅

    專注于JavaWeb開發
    隨筆 - 39, 文章 - 310, 評論 - 411, 引用 - 0
    數據加載中……

    Cactus容器測試入門

    此文參考: http://jakarta.apache.org/cactus/integration/howto_tomcat.html

    我們在web.xml中的webapp之間加入:
    <servlet>
      
    <servlet-name>ServletRedirector</servlet-name>
      
    <servlet-class>org.apache.cactus.server.ServletTestRedirector</servlet-class>
      
    <init-param>
        
    <param-name>param1</param-name>
        
    <param-value>value1 used for testing</param-value>
      
    </init-param>
    </servlet>

    <servlet>
      
    <servlet-name>ServletTestRunner</servlet-name>
      
    <servlet-class>org.apache.cactus.server.runner.ServletTestRunner</servlet-class>
    </servlet>
    加入mapping:
    <servlet-mapping>
        
    <servlet-name>ServletRedirector</servlet-name>
        
    <url-pattern>/ServletRedirector</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
        
    <servlet-name>ServletTestRunner</servlet-name>
        
    <url-pattern>/ServletTestRunner</url-pattern>
    </servlet-mapping>


    然后我們寫一個簡單的Servlet來進行測試:
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;

    public class SampleServlet extends HttpServlet
    {
        
    public void saveToSession(HttpServletRequest request)
        
    {
            String testparam 
    = request.getParameter("testparam");
            request.getSession().setAttribute(
    "testAttribute", testparam);
        }

    }


    對于此Servlet在xml的配置我就不寫了.想必你也了然于心了吧.

    來看看我們的測試類:
    import junit.framework.Test;
    import junit.framework.TestSuite;

    import org.apache.cactus.ServletTestCase;
    import org.apache.cactus.WebRequest;

    public class TestSampleServlet extends ServletTestCase
    {
        
    public TestSampleServlet(String theName)
        
    {
            
    super(theName);
        }


        
    public static Test suite()
        
    {
            
    return new TestSuite(TestSampleServlet.class);
        }


        
    public void beginSaveToSessionOK(WebRequest webRequest)
        
    {
            webRequest.addParameter(
    "testparam""it works!");
        }


        
    public void testSaveToSessionOK()
        
    {
            SampleServlet servlet 
    = new SampleServlet();
            servlet.saveToSession(request);
            assertEquals(
    "it works!", session.getAttribute("testAttribute"));
        }

    }



    部署之后,啟動Tomcat,訪問:

    http://localhost:8080/test/ServletTestRunner?suite=TestSampleServlet
    這時候你會看到輸出 :

    <?xml version="1.0" encoding="UTF-8" ?> 
    - <testsuites>
    - <testsuite name="com.test.servlet.TestServletTest" tests="1" failures="0" errors="1" time="0.516">
    - <testcase name="testSaveSessionToOK" time="0.36">
      
    <error message="org/apache/commons/codec/DecoderException" type="java.lang.NoClassDefFoundError">java.lang.NoClassDefFoundError: org/apache/commons/codec/DecoderException at org.apache.commons.httpclient.HttpMethodBase.getURI(HttpMethodBase.java:265) at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:383) at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:346) at org.apache.cactus.internal.client.connector.http.HttpClientConnectionHelper.connect_aroundBody0(HttpClientConnectionHelper.java:144) at org.apache.cactus.internal.client.connector.http.HttpClientConnectionHelper.connect_aroundBody1$advice(HttpClientConnectionHelper.java:307) at org.apache.cactus.internal.client.connector.http.HttpClientConnectionHelper.connect(HttpClientConnectionHelper.java:1) at org.apache.cactus.internal.client.connector.http.DefaultHttpClient.callRunTest(DefaultHttpClient.java:163) at org.apache.cactus.internal.client.connector.http.DefaultHttpClient.doTest_aroundBody0(DefaultHttpClient.java:81) at org.apache.cactus.internal.client.connector.http.DefaultHttpClient.doTest_aroundBody1$advice(DefaultHttpClient.java:307) at org.apache.cactus.internal.client.connector.http.DefaultHttpClient.doTest(DefaultHttpClient.java:1) at org.apache.cactus.internal.client.connector.http.HttpProtocolHandler.runWebTest(HttpProtocolHandler.java:164) at org.apache.cactus.internal.client.connector.http.HttpProtocolHandler.runTest_aroundBody0(HttpProtocolHandler.java:83) at org.apache.cactus.internal.client.connector.http.HttpProtocolHandler.runTest_aroundBody1$advice(HttpProtocolHandler.java:307) at org.apache.cactus.internal.client.connector.http.HttpProtocolHandler.runTest(HttpProtocolHandler.java:1) at org.apache.cactus.internal.client.ClientTestCaseCaller.runTest(ClientTestCaseCaller.java:145) at org.apache.cactus.internal.AbstractCactusTestCase.runBareClient(AbstractCactusTestCase.java:218) at org.apache.cactus.internal.AbstractCactusTestCase.runBare(AbstractCactusTestCase.java:134) at org.apache.cactus.server.runner.ServletTestRunner.run(ServletTestRunner.java:309) at org.apache.cactus.server.runner.ServletTestRunner.doGet_aroundBody0(ServletTestRunner.java:187) at org.apache.cactus.server.runner.ServletTestRunner.doGet_aroundBody1$advice(ServletTestRunner.java:225) at org.apache.cactus.server.runner.ServletTestRunner.doGet(ServletTestRunner.java:1) at javax.servlet.http.HttpServlet.service(HttpServlet.java:690) at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) at java.lang.Thread.run(Unknown Source)</error> 
      
    </testcase>
      
    </testsuite>
      
    </testsuites>

    看來程序沒有大問題,已經正確執行.不過這時提示有一個類找不到.
    對于這個問題我們可以去http://commons.apache.org/downloads/download_codec.cgi下載.

    這個xml看起來多少不習慣.我們可以下載xsl把它轉換成html格式.
    點此下載 把它放到你web應用的根目錄下.

    這個時候你可以訪問如下地址:
    http://localhost:8080/test/ServletTestRunner?suite=TestSampleServlet&xsl=cactus-report.xsl

    這時候你就會看到友好的Html格式了:
    HTML output of ServletTestRunner


    posted on 2008-06-01 01:11 々上善若水々 閱讀(3259) 評論(1)  編輯  收藏 所屬分類: 軟件測試

    評論

    # re: Cactus容器測試入門  回復  更多評論   

    Hello....

    Thanks a lot.... it helped me to run my first cactus program
    2012-11-12 19:01 | Cyril
    主站蜘蛛池模板: 免费一级毛片在线播放放视频| 国产精品亚洲va在线观看| 你懂的在线免费观看| 亚洲成a人片在线观看国产| 老湿机一区午夜精品免费福利| 国产一区二区三区在线免费观看 | 亚洲中文字幕无码久久精品1| 美女尿口扒开图片免费| 亚洲福利视频一区二区| 国产免费人成视频在线播放播| 亚洲人精品午夜射精日韩| 免费a级毛片无码a∨免费软件 | 亚洲国语精品自产拍在线观看| 一区二区三区在线免费看| 亚洲精品电影天堂网| 毛色毛片免费观看| 青青青亚洲精品国产| 国产成人麻豆亚洲综合无码精品 | 亚洲综合成人网在线观看| 1000部禁片黄的免费看| 亚洲日韩国产欧美一区二区三区| 免费日本黄色网址| 光棍天堂免费手机观看在线观看| 亚洲人成亚洲精品| 成人毛片免费网站| 国产成人无码免费看片软件| 亚洲电影国产一区| 成人免费视频网址| 男女一进一出抽搐免费视频| 亚洲精品456在线播放| 永久免费看bbb| 国产麻豆一精品一AV一免费| 亚洲人成高清在线播放| 免费大黄网站在线看| 在线看无码的免费网站| 亚洲中文字幕乱码AV波多JI| 久久久久亚洲AV成人网人人网站 | 国内精品免费视频自在线| 亚洲国产免费综合| 久久精品国产亚洲AV忘忧草18| 亚洲精品无码激情AV|