1

我有一个想要测试 API 稳定性的 web 应用程序。

为了测试 API,我依赖于包含由我的 API 编写的域对象的项目,我调用 api 并尝试将对象反序列化(使用 spring RestTemplate)到域对象中。

在开发新版本的 API 时,将使用更新版本的域对象项目。这是场景的图片: 在此处输入图像描述

现在我想要一种针对构建服务器上的给定 webapp 运行测试项目的自动化方式(在本例中为 Jenkins,使用 maven 或 ant)。问题是它们与不同的版本共享一个依赖项(所以我不能一起构建它们)。

我目前的方法是构建 webapp,将其部署在码头中,然后尝试运行测试。事实证明这很困难。

任何关于如何解决这个问题的方法?以往的经验?

4

1 回答 1

0

为什么 webapp-tests 依赖于 domain 1.1 而 webapp-api 依赖于 1.2-SNAPSHOT?webapp-tests 工件不应该依赖与 webapp-api 相同的常见依赖项吗?如果它只是具有不同版本的相同工件,则可以将其配置为属性。但我认为最好将 webapp-api 添加到项目中,以便共享通用版本:

  • 域(版本)
  • webapp-api(取决于域)
  • webapp-tests(取决于域,测试 webapp-api)

所有共享相同的父级和相同的版本。

如果您想针对之前发布的版本(或其中一个)进行测试,您需要执行类似于 cobertura-plugin 的操作:http: //mojo.codehaus.org/cobertura-maven-plugin/ 这意味着编写一个插件.

您是否尝试将要测试的依赖项添加到 Maven 配置文件中,以便 webapp-tests 使用不同版本的域再次运行 webapp-api?因此您可以重新运行测试以激活不同的配置文件。

我可能只是把问题弄错了 :) 如果 webapp-tests 应该包含不同的版本,那么不要让它依赖于 webapp-api 或域项目?由于您进行了休息测试,因此没有依赖项可能干扰的公共类路径?

于 2012-11-30T08:02:35.463 回答