Я пытаюсь использовать карате (https://github.com/intuit/karate) в качестве ключевого компонент в общей стратегии тестирования для тестирования контейнерных облачных микросервисов. Предполагая, что и тестируемый микросервис, и Karate имеют свои собственные контейнеры, процесс выглядит следующим образом:
- Получите каждый контейнер для локального развертывания
- Создайте (через gradle) компоненты в контейнере Karate (предположим, что для наших макетов требуются классы Java)
- Разверните (через gradle) макеты и запустите их в автономном режиме
- Внедрить информацию о макетах в YAML микросервиса
- Сборка и развертывание микросервиса локально
- Запускать тесты Каратэ (передача информации о макетах и / или окружении) через интерфейс командной строки.
Мой первый вопрос: хорошая это идея (TM) или плохая идея (TM). На первый взгляд это кажется разумным и достижимым, но мне интересно, пытаюсь ли я использовать каратэ таким образом, чтобы оно никогда не предназначалось для использования. Я играл с идеей сохранить все элементы Каратэ (включая фиктивный сервер) в самих тестах, но затем шаги № 3-5 должны были бы ввести фиктивную информацию в микросервис, а затем запустить команды для создания и развертывания микросервиса. все в рамках набора тестов, который мне показался плохой идеей (TM). Лучше вместо этого сделать это как часть конвейера в работе Дженкинса, верно?
Мой второй вопрос - как лучше всего экспортировать макеты, файлы и зависимости Java для внешнего использования (для поддержки шагов 2–3), например, вот файловая структура:
.
+-- build.gradle
+-- src
| +-- main
| +-- java
| +-- JWTSigner
| +-- PEMHelper
| +-- resources
| +-- private-key.pem
| +-- public-key.pem
+-- test
| +-- main
| +-- java
| +-- api
| +-- cats
| +-- cats.feature
| +-- dogs
| +-- dogs.feature
| +-- AllTestsRunner.java
| +-- mocks
| +-- mock-auth.feature
| +-- templates
| +-- public-key.json
| +-- resources
| +-- lolcats.pdf
| +-- loldawg.jpg
Итак, здесь mock-auth.feature
нужны материалы как в src/main
, так и в src/test/templates
. Мне удалось поиграть с задачами gradle и скопировать необходимые материалы в подкаталог основного каталога с автономным файлом Karate JAR, чтобы можно было запустить макет, но мне было интересно, есть ли лучший способ ...
Любые отзывы приветствуются, но если они отрицательные, предложите мне альтернативу. Спасибо.