代码之家  ›  专栏  ›  技术社区  ›  David Tinker

我如何在分解战争中包含测试类,以便使用Maven、Jetty和Spring进行集成测试?

  •  2
  • David Tinker  · 技术社区  · 16 年前

    我正在尝试让Spring、Maven和Jetty进行集成测试。在集成测试开始之前,我已经有了一个Jetty服务器来启动我的应用程序,使用MavenJetty插件和一个运行分解的预集成测试目标。这对于使用net.sourceforge.jwebUnit.junit.webtestcase进行测试很有效。

    我现在需要做的是在应用程序开始进行集成测试时将“额外”的bean加载到应用程序中。如果我的测试类和资源可以以某种方式与应用程序一起部署,这将很容易。有人知道一个简单的方法吗?

    我希望能够“模拟”一些东西(例如发送电子邮件),并编写集成测试,而这些测试不能简单地通过“前端”完成。

    4 回复  |  直到 15 年前
        1
  •  5
  •   Pascal Thivent    16 年前

    我现在需要做的是在应用程序开始进行集成测试时将“额外”的bean加载到应用程序中。如果我的测试类和资源可以以某种方式与应用程序一起部署,这将很容易。有人知道一个简单的方法吗?

    我将创建一个单独的集成测试模块,将额外的测试类和配置文件放在 来源 树与用途 Overlays 创建包含这些文件的“测试战争”。见 JSFUnit With Maven 对于类似的方法。

        2
  •  2
  •   Community Mohan Dere    9 年前

    我找到了一个简单的解决方案 this thread . Jetty插件支持向Web应用程序的类路径添加额外的内容。这是完美的,因为我只需要用@component注释额外的测试bean,然后Spring将它们加载到应用程序中。

    <webAppConfig>
      <contextPath>/${project.name}</contextPath>
      <extraClasspath>${project.build.testOutputDirectory}</extraClasspath>
    </webAppConfig>
    
        3
  •  1
  •   Jeroen Rosenberg    16 年前

    您可以在POM文件中定义一个“集成”概要文件,该概要文件由运行带有-pintegration标志的MVN触发。然后,使用不同的applicationContext.xml从特定于环境的目录(例如,src/main/external resources/integration)定义额外的bean。

    <profile>
      <id>integration</id>
      <properties>
        <env>integration</env>
      </properties>
      <build>
        <resources>
          <resource>
            <directory>src/main/external-resources/${env}</directory>
          </resource>
          <resource>
            <directory>src/main/resources</directory>
          </resource>
        </resources>
        ...
    
        4
  •  1
  •   user659095    15 年前

    <useTestClasspath>true</useTestClasspath>

    在配置部分。

    推荐文章