我有一個包含ws客戶端和服務(JAX-WS)的項目。有沒有辦法在自動化測試中部署ws,這樣我可以讓我的客戶端測試包含對服務的調用?單元測試來自NetBeans的Web服務客戶端
顯然這需要部署到應用程序服務器......或者這種測試是不明智的嗎?
我有一個包含ws客戶端和服務(JAX-WS)的項目。有沒有辦法在自動化測試中部署ws,這樣我可以讓我的客戶端測試包含對服務的調用?單元測試來自NetBeans的Web服務客戶端
顯然這需要部署到應用程序服務器......或者這種測試是不明智的嗎?
我找到了適合此問題的解決方案。使用嵌入式Tomcat(7.0.11),我能夠在單元測試運行期間以編程方式成功部署我的Web服務。
tomcat = new Tomcat();
tomcat.setBaseDir(".");
tomcat.setPort(8084);
tomcat.addWebapp("/", System.getProperty("user.dir") + "/build/web");
tomcat.setHostname("localhost");
tomcat.enableNaming();
tomcat.start();
這種方法非常適合我,因爲我想自動化Web服務客戶端的測試。由於Piyush指出,soapUI是執行集成測試的完美方式。
編輯
如果您正在使用context.xml
你需要定義它像這樣:
Context ctx = tomcat.addWebapp("/", System.getProperty("user.dir") + "/build/web");
File contextFile = new File("META-INF/context.xml");
ctx.setConfigFile(contextFile);
您如何生成您的服務? 他們是什麼樣的Web服務?您生成的服務不是常規的POJO嗎?
對不起,JAX-WS(按標籤);我會更新我的帖子 – wulfgarpro 2011-06-08 06:16:07
是的,我看過REST信息;功能測試不是我想要實現的,而是自動化的單元測試。 – wulfgarpro 2011-06-08 06:17:42
請參閱更新後的帖子。 – 2011-06-08 06:27:14
Glassfish會是同樣的事情嗎? – CodyBugstein 2016-02-07 21:28:26