2014-10-10 139 views
0

我嘗試使用jersey-test-framework-provider-grizzly2在Jersey REST Servlet上創建JerseyTest。JerseyTest無法識別@WebFilter

該測試以灰熊的身份從servlet請求正確的內容。

但是,當啓動servlet生產有一個HTTPBasicAuth。 Auth使用@WebFilter(「/ *」)org.apache.shiro.web.servlet.ShiroFilter完成。

在JerseyTest期間沒有Auth請求。 所以我的結論是@WebFilter註釋不被識別。 JerseyTest僅測試應用程序中的資源嗎? 如何讓WebFilters識別?

謝謝。

回答

0

我想我可以回答自己;-)

這是一個JerseyTest框架和沒有「FullAppWithJerseyTest」框架。

我現在已經實現了類似ServletJerseyTest的擴展JerseyTest。 它使用org.glassfish.jersey.test.external.ExternalTestContainerFactory.class,並且setUp()包含啓動一個servlet容器並安裝最新的內置WAR。

測試針對此容器運行。在tearDown()容器被停止並且安裝WAR被刪除。

嵌入式Tomcat具有API可以自行查找空閒TCP端口,並且TestProperties.CONTAINER_PORT被設置爲選擇端口。

現在按預期運行測試...

+0

如果你知道沒有關於構建系統假設一個更好的更通用的解決方案來了解這應該對...你的答案被測試會受到歡迎的戰爭! – Markus 2014-10-11 13:18:52