Як розробник, який не запускає всі тести інтеграції та одиниць, перш ніж взяти на себе зобов’язання контролю джерела, я запропоную свою захист тут.
Мені доведеться створити, протестувати та перевірити, чи програма працює правильно:
- 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 в останніх трьох останніх версіях.
Додайте до Fortran (як для компіляторів Intel, так і для GNU), Python (і це різні версії залежно від ОС) та компоненти сценарію bash / bat, і, я думаю, ви можете бачити, що речі спіральні.
Отже, це шістнадцять машин, які мені доведеться мати, лише кілька разів на день проводити кілька тестів. Це було б майже повноцінною роботою просто управління інфраструктурою для цього. Я думаю, що майже кожен погодиться з цим, що це нерозумно, особливо примножуючи його на кількість людей у проекті. Тож ми дозволяємо нашим серверам CI виконувати роботу.
Експериментальні тести не зупиняють вас, коли ви не вчинили зламаного коду, вони скажуть вам, якщо вони знають, що ви щось зламали. Люди можуть сказати, що "одиничні тести повинні бути швидкими", і продовжувати принципи та шаблони дизайну та методології, але насправді іноді просто краще дозволити комп'ютерам, які ми створили для повторюваних, монотонних завдань, виконувати ці завдання та брати участь лише тоді, коли вони скажи нам, що вони щось знайшли.