2016-05-08 5 views
0

Я понимаю, что Test Kitchen следует последовательностиТест Кухня интеграционных тесты с Chefspec: тестирование кулинарного с зависимостями

создать узел> сходиться поваренной книга> запустить тесты

Что является лучшей практикой для создания теста, который предполагает сильная внешняя зависимость?

Примером является кулинарная книга Кафки https://supermarket.chef.io/cookbooks/kafka. Как вы, возможно, знаете, Kafka - приложение брокера обмена сообщениями, которое зависит от Zookeeper, отдельного приложения, которое является центром сообщений.

После надлежащего разделения проблем в кулинарной книге Kafka не содержится Zookeeper - ее можно установить на том же хосте или на другой машине.

Однако, чтобы выполнить простую проверку, если Kafka работает (т. Е. Создать простое сообщение), вам необходимо запустить сервер Zookeeper.

Например, тест может быть запущены эти три команд после установки

# creates a message topic 
bin/kafka-create-topic.sh --zookeeper localhost:2181 --replica 1 --partition 1 --topic test 

# lists existing message topics 
bin/kafka-list-topic.sh --zookeeper localhost:2181 

# sends a message to this machine 
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test 

Использования Chefspec, есть способ незавершенного этот внешний сервера (локальный хост: 2181 части выше)?

Спасибо!

ответ

0

Две части ответа: первый ChefSpec используется для модульного тестирования и не связан с тестированием кухни и интеграционными испытаниями. Во-вторых, вам нужно будет создать минимальный тестовый рецепт для установки 1-узла ZK-сервера и использовать его для тестирования интеграции. Как правило, вы сделали бы это, поставив тестовую кулинарную книгу под test/cookbook, а затем добавите ее в свой Berksfile с источником path. Вы могли бы использовать «настоящую» поваренную книгу ZK, или вы могли бы использовать что-то более простое и более специализированное. Просто пример минимализма для тестирования, см. my MongoDB recipe. Вероятно, вы можете использовать что-то подобное для ZK в этой ситуации.

+0

Благодарим вас за ответ и высокую оценку поваренной книги по применению! Я работаю с проектом .Net, посмотрю, смогу ли я использовать вашу кулинарию вместо последовательности команд powershell, которые я использую в настоящее время. Что касается тестирования, я предпочитаю избегать вашего подхода к включению зависимого рецепта в основной рецепт только ради тестов. Однако я попробую сделать тестовую/кулинарную книгу и посмотреть, разрешит ли она проблему. Скоро обновите. Ура! –