У меня есть тесты, которые работают очень медленно, скажем, тест, который экспортирует большую базу данных для проверки кода экспорта на утечки памяти.
Хотя это полезно, это не единица тесты , обозначенные тегом unit-test.
Тест не является модульным тестом, если:
- Он обращается к базе данных
- Itобменивается данными по сети
- Это касается файловой системы
- Он не может работать одновременно с другими вашими модульными тестами
- Вы должны выполнить специальные действия дляваша среда (например, редактирование конфигурационных файлов) для его запуска.
Тесты, которые делают эти вещи, неплохие и, безусловно, заслуживают написания.Они даже могут быть написаны с использованием фреймворка модульного тестирования.Тем не менее, важно иметь возможность отделить их от настоящих модульных тестов, чтобы вы могли сохранить набор тестов, которые вы сможете быстро выполнять всякий раз, когда вносите изменения, особенно в цикле TDD, когда вы хотите перейти от провала теста к прохождению теста.как можно быстрее.
Если вы используете Makefile
, вы можете иметь цель check
для истинных юнит-тестов и цель livecheck
для этих медленных системных тестов.
Способ выполнения каждого теста в отдельности будет зависеть от вашей среды.