Автоматизированные тесты по сравнению с юнит-тестами. Насколько я понимаю, юнит-тесты - это подкатегория автоматических тестов.Как следует из названия, автоматизированные тесты - это тесты, которые не требуют вмешательства человека для запуска: машина должна быть в состоянии запустить их.Модульные тесты являются их подмножеством: они проверяют единицу функциональности.Лучшее определение, которое я видел для них, было Кент Бек: «Если тест не пройден, сколько вещей может быть не так? Чем ближе ответ к 1, тем более« юнит-у »тест».Другими автоматизированными тестами могут быть интеграционные тесты, которые скажут вам, что приложение не ведет себя в целом так, как ожидалось, но не обязательно сообщат вам, какая часть приложения неисправна.
Непрерывная интеграция сводится к ограничению «ада интеграции», иначе «но он работает на моей машине!».Вместо того, чтобы надеяться, что несколько разработчиков всегда будут следить за тем, чтобы их изменения синхронизировались с усилиями всей команды и чтобы они не ломали приложение, непрерывная интеграция стремится иметь «защитный» механизм хранилища, то есть каждый раз, когда кто-то фиксирует,хранилище гарантирует, что ничего не сломано.Как минимум, это включает в себя проверку того, что последний коммит все еще строит, в лучшем случае это также обеспечивает выполнение существующей функциональности, запуская автоматические тесты.