Как Hybris управляет контекстами приложения между приложением и интеграционными тестами - PullRequest
0 голосов
/ 01 февраля 2019

В настоящее время я новичок в Hybris и пишу интеграционные тесты, и это здорово, однако мне сложно понять концепцию Junit-арендатора и то, как Hybris управляет контекстом приложения для этого клиента.

Я пришел из весеннего фона, и там я могу сказать, что было легко загрузить отдельную тестовую конфигурацию или любую конфигурацию, и просто протестировать ее, не затрагивая основной контекст приложения времени выполнения, который используется, скажем, для отладки одновременно.

Однако в Hybris я несколько сбит с толку, поскольку во время работы сервера вы можете легко переключаться между арендаторами и выполнять интеграционный тест в то же время, когда, скажем, какой-то пользователь что-то покупает.

Есть ли в Hybris отдельный контекст приложения для junit и master-арендатора?И независимо от того, да или нет, как Hybris управляет контекстами приложения между арендаторами?

Впервые я столкнулся с этой проблемой, когда объявлял bean-компонент ehCacheManager, и внезапно все мои тесты начали давать сбой - что-то такое, что является кешем.в режиме ВЫКЛЮЧЕНИЯ ... что было странно.

Является ли контекст приложения общим для арендаторов?Распределяется ли оно между двумя отдельными интеграционными тестами?Уничтожено ли оно после одного теста, а затем создано для другого интеграционного теста?

Я знаю, что некоторые из этих вопросов могут показаться запутанными или даже глупыми, но я буду рад, если кто-нибудь сможет объяснить мне, как hybris управляет приложениемконтекст между арендатором и тестами, более того, я буду очень признателен, если вы сможете поделиться некоторыми ресурсами или книгами по этой теме.

Заранее спасибо !!!

Ответы [ 2 ]

0 голосов
/ 04 февраля 2019

Есть ли в Hybris отдельный контекст приложения для junit и master-арендатора?И независимо от того, да или нет, как Hybris управляет контекстами приложения между арендаторами?

Да, пожалуйста, найдите ниже схему, представляющую его (источник SAP: https://help.hybris.com/1811/hcd/8c63621986691014a7e0a18695d7d410.html Cf.Рисунок: Иерархия контекстов приложения. ).enter image description here

Не то, что в вашем случае junit - это то, что мы называем «подчиненным» арендатором.

Совместно ли контекст приложения используется арендаторами?Распределяется ли оно между двумя отдельными интеграционными тестами?Разрушается ли он после одного теста, а затем создается для другого интеграционного теста?

Как видно из схемы, глобальный контекст приложения является общим, но веб (случай ehCacheManager, я думаю) и основной контекст приложенияне являются общими.Они не меняются при запуске тестов.

0 голосов
/ 02 февраля 2019

Во-первых, это не очень хороший способ сделать тест, пока клиент покупает что-то на том же или предварительно прод-сервере.Арендатор отличается концепцией, а не пружиной для гибриса.Арендатор hybris использует несколько схем базы данных для одной и той же базы кода.Вы можете запустить несколько Hybris на одном БД с арендатором.Один из них - арендатор юнитов для проведения испытаний.Hybris не откат / сброс изменений БД на джунит.Вам нужно инициализировать его как обычный арендатор в hac или с помощью ant.

  • Вам необходимо вручную управлять тестовыми данными в модульном тесте.

  • Вы можете запустить тестирование с помощью ant или front end после запуска по адресу url https://localhost:9002/test

Документация по тестированию Hybris Junit здесь .

...