2014年3月6日 星期四

cactus - 執行時出現 javax.servlet.ServletException: Failed to load test suite [xxxxx], Reason is [Class not found "xxxxx"]

參考:Error : “javax.servlet.ServletException: Failed to load test suite [SampleTest], Reason is [Class not found ”SampleTest“]
Cactus - Tomcat Quickstart forewords

第一次使用Cactus,按照官方教學操作,搞了老半天開始執行時卻出現錯誤:
javax.servlet.ServletException: Failed to load test suite [InvoiceSvTDDTest], Reason is [Class not found "InvoiceSvTDDTest"] org.apache.cactus.server.runner.ServletTestRunner.run(ServletTestRunner.java:303) org.apache.cactus.server.runner.ServletTestRunner.doGet_aroundBody0(ServletTestRunner.java:187) org.apache.cactus.server.runner.ServletTestRunner.doGet_aroundBody1$advice(ServletTestRunner.java:218) org.apache.cactus.server.runner.ServletTestRunner.doGet(ServletTestRunner.java:1) javax.servlet.http.HttpServlet.service(HttpServlet.java:621) javax.servlet.http.HttpServlet.service(HttpServlet.java:728) com.ctbc.mi.web.filter.ClearTempFilter.doFilter(ClearTempFilter.java:43) 

找了半天原來,這東東不支援欲測試的TestCase是有package的(20140307更新:有支援,請參考下方更新)... 哎,可能是還沒弄懂,我覺得用這個cactus測試蠻麻煩的,為了使用還得破壞原先的web.xml,而且還一定得要先啟動web-server端...這樣子很難測試耶...光環境上就要搞一大堆... 可能我還沒弄清楚吧..

2013/3/7更新:是可以使用package的,只要如下使用: http://localhost:8080/test/ServletTestRunner?suite=packagename.TestSampleServlet 就可以囉,
例如: http://localhost:8080/test/ServletTestRunner?suite=ut.test.pkg.TestSampleServlet 其中ut.test.pkg就是packag的全名了

沒有留言:

張貼留言