我的问题包括两个 maven 项目,一个服务器项目 A 和一个客户端项目 B。A 使用 maven-assembly-plugin 生成 A 的多个变体,其中一个变体是 WAR 存档。我面临的问题与B的测试驱动开发有关;如何使项目 A 中生成的 WAR 存档可从项目 B 中的单元测试访问/寻址?我的想法是在项目 B 中构建测试用例,其中通过 WebApppContext 的 setWar(String path) 函数将 WAR 存档部署在嵌入式 Jetty 服务器中。
问问题
722 次
1 回答
1
您可以将来自其他子模块的工件声明为测试依赖项,例如:
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>ModuleA</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
</dependencies>
这样,您肯定可以使用来自其他模块的 jar。我不确定它是否适用于 WAR 文件——但它可能值得一试。
请注意,针对部署在嵌入式 Web 容器中的 WAR 运行的测试很难算作单元测试,而是集成测试。在项目中有效的方法是:
- 构建 Web 应用程序(在我们的例子中是 EAR)并部署它(我们使用 JBoss Maven 插件,但在你的例子中它可能是 Cargo 或其他)
- 运行一个单独的构建(具有特定的超时以允许服务器启动),它针对已部署的 Web 应用程序执行集成测试
于 2010-10-22T07:54:04.733 回答