Загалом: так, ви повинні розміщувати інтеграційні тести та одиничні тести в різні папки. Часто програмісти не проводять чіткої межі між цими двома видами тестів, а просто пишуть будь-який вид тесту. Але тести на інтеграцію, як правило, повільніше, тому що вони часто включають:
- Запити до бази даних
- Мережеві запити
- Поведінка, залежна від часу
- Великий обсяг даних
Навпаки, одиничний тест мав би глузувати над будь-якими дорогими операціями, тому одиничні тести, як правило, працюють швидко (насправді, найповільніша частина запуску тесту часто є самою рамкою тесту).
Коли програміст працює над системою, вони перебувають у циклі редагування-тестування. Чим швидше вони отримують відгуки про тести і чим коротший цикл, тим продуктивнішими вони можуть бути. Тож ми хочемо провести лише важливий тест, який швидко закінчиться. Повний набір тестів виконується лише в рамках процесу QA, наприклад, на сервері CI.
Це означає, що великі набори тестів слід класифікувати. Чи можемо ми вибрати лише одиничні тести для певного компонента? Чи можна виключити повільні тести? Один з простих способів зробити це - підтримувати різні тестові набори в різних каталогах. Якщо у вас є дуже мало тестів, з одним каталогом також буде гаразд, якщо програміст може легко вибрати підмножину тестів.
Те, що дозволяє програмісту швидко отримати зворотний зв'язок, це добре. Найбільш повний набір тестів не має значення, чи він не виконується регулярно.
Подальше читання: