我正在处理一个以war
格式发布的servlet(包含Jersey REST服务器)。我编写了大量的单元测试来彻底测试代码库。但是,我经常遇到战争没有正确开始的问题。
这主要是由于我在web.xml
文件中犯了某种错误。例如,我重命名了xml中提到的一些类,而没有更改xml本身中的相应行。问题是在我的测试中我创建了一个 debug Application所以从不考虑xml。更重要的是,让我说我有以下(泽西岛)ResourceConfig
:
import org.glassfish.jersey.server.ResourceConfig;
public class MyConfig extends ResourceConfig {
public MyConfig() {
register(...);
}
}
现在假设我在web.xml
:
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>MyMisspelledConfig</param-value>
</init-param>
我的单元测试看起来像这样:
public class ServerTest extends JerseyTest {
@Override
protected Application configure() {
return new MyConfig();
}
@Test
public void test() {
//...
}
}
测试通过,但部署的servlet甚至无法启动......
有没有办法自动测试默认部署(包括web.xml
)?
答案 0 :(得分:0)
我知道测试部署描述符 web.xml
的唯一方法是在开发者机器上的本地服务器上部署war(tomcat或jetty是很好的候选者)。 Netbeans或Eclipse提供了很好的集成,打开了浏览器窗口到Web应用程序的根目录。
然后,您可以手动查看某些页面,或者如果您喜欢自动化测试,则可以使用优秀的Selenium来播放一些记录的scenarii控制部分。