2014-10-10 137 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