首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在JUnit中自动测试服务器上的功能?

在JUnit中自动测试服务器上的功能?
EN

Stack Overflow用户
提问于 2014-11-21 17:09:01
回答 1查看 650关注 0票数 0

我会将一些JUnit测试添加到Eclipse项目中,以测试服务器上的功能。

我可以在外部Tomcat服务器(Run As | Run on Server)上从Eclipse内部运行web应用程序,然后在第一个测试仍在运行的情况下也从Eclipse内部运行JUnit测试。

据我所知,应该可以通过使用运行在Eclipse中的Jetty (而不是Tomcat)服务器来完全自动化这两个步骤,该服务器可以在@BeforeClass (或更早的版本)中启动。

Eclipse是否支持这种开箱即用的单元测试。我目前正在为Web开发人员使用Eclipse Java EE IDE (版本: Kepler Service Release 2)。

EN

回答 1

Stack Overflow用户

发布于 2014-11-21 17:20:24

Eclipse (以及任何其他IDE )都不会阻止您在单元测试中做任何事情。它也不支持太多,这也是您的问题的核心: Eclipse不会为您的单元测试启动服务器。据我所知,所有其他IDE也是如此。

相反,您需要阅读有关如何进行单元测试(= embed Jetty in a Java application )的知识,以便第一个测试可以启动服务器。为此,请使用惰性初始化模式:

代码语言:javascript
复制
private static JettyManager jetty;

@Before public void startServer() {
    if( null == jetty ) {
        jetty = new JettyManager();
        jetty.start();
    }
}

您可以使用JVM关闭钩子来彻底停止服务器。

我使用相同的模式来创建数据库,应该在测试期间使用它,以确保它是干净的。为此,我使用embed an H2 database

如果你想要更多的自动化,看看Maven。它可以运行集成测试(包括在开始测试之前部署WAR )。请参阅http://www.benoitschweblin.com/2013/03/run-jetty-in-maven-life-cycle.html

使用Maven Cargo plugin,您可以部署到几乎所有的J2EE容器。

或者使用Jenkins:http://programmaticponderings.wordpress.com/2013/11/13/building-a-deployment-pipeline-using-git-maven-jenkins-and-glassfish-part-2-of-2/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27057659

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档