Как стать автором
Обновить

TDD по-фольксвагеновски

Время на прочтение2 мин
Количество просмотров42K
Компания Volkswagen показала всему миру, что такое настоящий Test Driven Development. Тесты прошли — можно спать спокойно.

Программное обеспечение, разрабатываемое в компании, довольно специфичное и предназначено для промышленных платформ (автомобильных компьютеров). Компания не раскрывает, какими инструментами пользуется при разработке; и тем более не выкладывает эти инструменты в открытый доступ, как это часто бывает среди ведущих IT компаний. Но сам инновационный подход Volkswagen к тестированию поразил всех. Этот передовой опыт несомненно заслуживает того, чтобы перенять его и внедрить также в мейнстриме нашей отрасли. И сообщество Github незамедлительно откликнулось на этот вызов. Итак, встречайте: библиотеки для поддержки TDD в стиле Volkswagen.



Актуальная информация о реализациях собрана здесь. На данный момент есть реализации для языков Ruby (даже две), JavaScript, Java, D, Go, PHP, Objective-C и Swift. Вот, к примеру, описание модуля volkswagen для JavaScript. (Другие реализации отличаются по синтаксису, но совершенно аналогичны по назначению.)



Volkswagen обнаруживает, что ваши тесты выполняются на сервере постоянной интеграции (CI) и обеспечивает их успешное прохождение.

Для чего нужно?

Если вы хотите, чтобы ваш софт был принят жителями США, хорошие результаты тестов с интеграционного сервера очень важны. Volkswagen использует так называемое «defeat device» для определения того, что проводится тестирование на интеграционном сервере, и понижает количество ошибок до приемлемого для прохождения тестов уровня. Это позволит вам тратить меньше времени на тестирование и больше наслаждаться жизнью как разработчику, которому доверяют.

В свой README файл вы можете вставить вот такой вечнозеленый бейдж для статуса сборки проекта: image

В синтакисие markdown:
[![volkswagen status](https://auchenberg.github.io/volkswagen/volkswargen_ci.svg?v=1)](https://github.com/auchenberg/volkswagen)


Установка

npm install volkswagen


Использование

Просто включите volkswagen в любом месте вашего кода, например в основном файле с тестами:

require('volkswagen')


Статус проекта

Обнаруживаемые серверы интеграции:

Travis CI, CircleCI, Jenkins CI, Hudson, Bamboo, TeamCity, Team Foundation Server, Visual Studio Online CI, GitLab CI, Codeship, Drone.io, Buildkite, TaskCluster. А также другие серверы, которые экспортируют переменную окружения CI или CONTINUOUS_INTEGRATION.

Библиотеки для модульного тестования, тесты в которых обходятся: assert, tap, tape, chai а также любые другие тесты, которые устанавливают код возврата или выбрасывают ошибку.

Лицензия

MIT


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

Добавить реализации для других языков и серверов интеграции приглашаются все желающие. Не забудьте добавить ссылку сюда.
Теги:
Хабы:
Всего голосов 104: ↑74 и ↓30+44
Комментарии17

Публикации

Истории

Работа

Ближайшие события

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
11 сентября
Митап по BigData от Честного ЗНАКа
Санкт-ПетербургОнлайн
14 сентября
Конференция Practical ML Conf
МоскваОнлайн
19 сентября
CDI Conf 2024
Москва
20 – 22 сентября
BCI Hack Moscow
Москва
24 сентября
Конференция Fin.Bot 2024
МоскваОнлайн
25 сентября
Конференция Yandex Scale 2024
МоскваОнлайн
28 – 29 сентября
Конференция E-CODE
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
30 сентября – 1 октября
Конференция фронтенд-разработчиков FrontendConf 2024
МоскваОнлайн