Описание тега test-kitchen

Test Kitchen - это инструмент интеграции для разработки и тестирования кода инфраструктуры и программного обеспечения на изолированных целевых платформах.

Что такое тестовая кухня?

Test Kitchen - это инструмент для тестирования, позволяющий изолированно выполнять сконфигурированный код на одной или нескольких платформах. Используется архитектура подключаемого модуля драйвера, которая позволяет запускать код на различных облачных провайдерах и технологиях виртуализации, таких как Amazon EC2, Blue Box, CloudStack, Digital Ocean, Rackspace, OpenStack, Vagrant, Docker, контейнеры LXC и другие. Многие среды тестирования уже поддерживаются "из коробки", включая Bats, shUnit2, RSpec, Serverspec, а другие создаются еженедельно.

Для рабочих процессов Chef поддерживаются инструменты распознавания зависимостей поваренных книг, такие как Berkshelf и Librarian-Chef, или вы можете просто создать каталог cookbooks/, и Test Kitchen будет знать, что делать. Поддержка Test Kitchen уже включена во многие кулинарные книги сообщества Chef, такие как MySQL, nginx, Chef Server и runit cookbooks.

Что это мне дает?

Test Kitchen имеет простой рабочий процесс, который подчеркивает скорость, но оптимизирует свежесть вашего кода, выполняемого в удаленных системах между тестами. Он имеет статическую декларативную конфигурацию в файле.kitchen.yml в корне вашего проекта. Он предназначен для выполнения изолированного кода, запущенного в первозданной среде, гарантируя отсутствие предшествующего состояния. Архитектура плагинов дает вам свободу запускать ваш код на любых ресурсах облака, виртуализации или "голого железа" и позволяет вам писать критерии приемлемости в любой структуре, которую вы пожелаете.

Как мне начать?

Добавить поддержку тестирования в свою кулинарную книгу или проект Chef очень просто. Предполагая, что у вас установлен Ruby 1.9 или выше и Vagrant, откройте сеанс терминала и введите:

$ gem install test-kitchen
$ kitchen init
$ kitchen test

Более подробные инструкции см. В Руководстве по началу работы.