Как разработчик, который не запускает все интеграционные и модульные тесты, прежде чем принять на себя обязательство контролировать исходный код, я предложу здесь свою защиту.
Я должен был бы построить, проверить и проверить, что приложение работает правильно на:
- Microsoft Windows XP и Vista с компилятором Visual Studio 2008.
- Microsoft Windows 7 с компилятором Visual Studio 2010.
- Да, и MSI собирает для каждого из них.
- RHEL 5 и 6 с 4.1 и 4.4 соответственно (аналогично CentOS)
- Рабочая станция Fedora с GCC для последних трех последних версий.
- Debian (и его производные, такие как Ubuntu) для последних трех последних версий.
- Mac OSX в последних трех последних версиях.
- И пакеты (RPM, DMG и т. Д.)
Добавьте в Fortran (с компиляторами как Intel, так и GNU) Python (и его различные версии в зависимости от ОС) и компоненты сценариев bash / bat, и, я думаю, вы можете видеть, что все идет по спирали
Так что мне понадобится шестнадцать машин, чтобы проводить несколько тестов пару раз в день. Это было бы почти полный рабочий день, просто чтобы управлять инфраструктурой для этого. Я думаю, что почти любой согласится, что это неразумно, особенно если умножить это на количество людей в проекте. Поэтому мы позволяем нашим CI-серверам делать свою работу.
Модульные тесты не мешают вам совершать испорченный код, они сообщают вам, если знают, что вы что-то испортили. Люди могут сказать, что «модульные тесты должны быть быстрыми», и продолжать рассказывать о принципах, шаблонах и методологиях проектирования, но в действительности иногда просто лучше позволить компьютерам, которые мы разработали для повторяющихся монотонных задач, выполнять их и участвовать в них, только если они скажи нам, что они что-то нашли.