gpt4 book ai didi

java - 关于如何获取测试 jar 来运行单独的测试 war 的指针(也许与 cargo ?)

转载 作者:行者123 更新时间:2023-12-02 08:29:54 25 4
gpt4 key购买 nike

让我解释一下我的一些限制。

我们有一场 war ,其中有 CXF Soap 服务和 Spring MVC REST 服务。 CXF 和 Spring MVC 实现都在一个单独的 jar 中,并作为依赖项引入。 REST 服务在其项目中具有单元测试。

我想知道是否有任何方法可以在 REST jar 中执行“mvn clean test”之类的操作时设置本地版本的 war,然后运行单元测试。因此,当构建像 Hudson 这样的东西或进行发布时,不必有任何解决方法(例如部署快照耳朵或手动运行局部 war )?我在 war 中使用 cargo 进行测试时看到过这种情况,但在测试与 war 分开时却没有看到这种情况。

现在,我们将把测试放入一个单独的 jar 中,但这仍然不理想,就好像在发布过程中出现问题一样,这意味着 REST jar 和 war 已经发布了。我更愿意按照上述方式进行操作,并在与 REST 服务相同的项目中进行测试。

如果有人有任何可以帮助解决此问题的指针、文档或示例,我们将不胜感激。

最佳答案

老实说,我不确定我是否理解所有的限制。无论如何,推荐使用 Maven 实现集成测试的方法是将它们放在一个单独的模块中(这更容易,特别是如果被测模块也有单元测试),这取决于 war/ear 下的情况。测试并:

  1. 预集成测试阶段启动容器并部署 war/ear
  2. 让 Maven 在集成测试期间运行测试
  3. 集成后测试期间停止容器

对于步骤 #1 和 #3,我个人使用 Cargo。对于步骤 #2,使用 Maven Failsafe Plugin是首选选项(因为如果测试失败它不会停止构建)。至少,这是我使用的,并且我已经使用下面的资源来构建我的设置。

另一种方法是测试中启动/停止嵌入式容器。例如,这可以通过 Jetty 实现,请参阅 Embedding JettyUnit Test Servlets with Jetty .

资源

关于java - 关于如何获取测试 jar 来运行单独的测试 war 的指针(也许与 cargo ?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3680655/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com