【问题标题】:How Hybris is managing Application Contexts between the application and integration testsHybris 如何在应用程序和集成测试之间管理应用程序上下文
【发布时间】:2019-06-26 06:59:09
【问题描述】:

我目前是 Hybris 的新手,我正在编写集成测试,这很棒,但是我很难理解 junit 租户的概念以及 Hybris 如何为该租户管理应用程序上下文。

我来自 spring 背景,我可以说很容易加载单独的测试配置或任何配置,并且只是在不影响所使用的主运行时应用程序上下文的情况下对其进行测试,让我们说在同一时间。

但是在 Hybris 中,我有点困惑,因为在服务器运行时,您可以轻松地在租户之间进行交换,并在假设某个用户正在购买东西的同时执行集成测试。

Hybris 是否为 junit 和主租户提供单独的应用程序上下文? 无论是或否,Hybris 如何管理租户之间的应用程序上下文?

我在声明 ehCacheManager bean 时第一次遇到这个问题,突然我所有的测试都开始失败 - 缓存处于 SHUTDOWN 模式......这很奇怪。

租户之间是否共享应用程序上下文? 它是否在两个单独的集成测试之间共享? 是否在一次测试后销毁,然后为另一次集成测试创建?

我知道其中一些问题可能看起来令人困惑甚至愚蠢,但如果有人能解释一下 hybris 如何管理租户和测试之间的应用程序上下文,我会很高兴,此外,如果你能分享一些,我将非常感激有关此主题的资源或书籍。

提前致谢!!!

【问题讨论】:

    标签: spring integration-testing hybris applicationcontext


    【解决方案1】:

    Hybris 是否为 junit 和主租户提供单独的应用程序上下文?无论是或否,Hybris 如何管理租户之间的应用程序上下文?

    是的,请在下面找到代表它的方案(来源 SAP:https://help.hybris.com/1811/hcd/8c63621986691014a7e0a18695d7d410.html参见图:应用程序上下文的层次结构。)。

    在您的情况下,junit 并不是我们所说的“奴隶”租户。

    租户之间是否共享应用程序上下文?它是否在两个单独的集成测试之间共享?是否在一次测试后销毁,然后为另一次集成测试创建?

    正如您在方案中看到的,全局应用程序上下文是共享的,但 web(我认为是 ehCacheManager 的情况)和核心应用程序上下文不共享。这些在您运行测试时不会改变。

    【讨论】:

    • 谢谢 alain.janinm 现在对我来说更清楚了。
    【解决方案2】:

    首先,当客户在相同或预生产服务器上购买东西时,这不是进行测试的好方法。 租户是不同的概念,而不是 hybris 的弹簧。 hybris 租户正在为相同的代码库使用多个数据库模式。您可以使用租户在同一个数据库上运行多个 hybris。其中之一是用于进行测试的 junit 租户。 hybris 不会在 junit 上回滚/重置数据库更改。您需要像在 hac 或 ant 中的普通租户一样初始化它。

    • 需要在单元测试中手动管理测试数据。

    • 您可以在从 url https://localhost:9002/test 开始后使用 ant 或前端运行测试

    hybris junit 测试文档here.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-12
      • 1970-01-01
      • 1970-01-01
      • 2015-11-13
      相关资源
      最近更新 更多