У меня есть около 100 модульных тестов с покрытием 20%, которые я пытаюсь увеличить, а также это проект в разработке, поэтому продолжайте добавлять новые тесты.
В настоящее время запуск моих тестов после каждой сборки невозможен, они занимают около 2 минут.
Тест включает:
- Файл, считанный из тестовых папок (стиль, управляемый данными, для имитации некоторых вещей HTTP)
- Выполнение реальных HTTP-запросов к локальному веб-серверу (это огромная боль для издевательств, поэтому я не буду)
- Не все из них являются модульными тестами, но есть также довольно сложные многопоточные классы, которые необходимо протестировать, и я проверяю общее поведение теста. Это можно рассматривать как функциональное тестирование, но его также необходимо запускать каждый раз.
Большая часть функциональности требует чтения HTTP, выполнения TCP и т. д. Я не могу их изменить, потому что это вся идея проекта, если я изменю эти тесты, будет бессмысленно тестировать материал.
Также я не думаю, что у меня есть самые быстрые инструменты для запуска модульных тестов. Моя текущая установка использует VS TS с Gallio и nUnit в качестве фреймворка. Я думаю, что VS TS + Gallio также немного медленнее, чем другие.
Что бы вы порекомендовали мне, чтобы решить эту проблему? Я хочу запускать модульные тесты после каждого небольшого изменения, но в настоящее время эта проблема прерывает мой поток.
Дополнительное пояснение Правка:
Код сильно связан! К сожалению, изменение похоже на огромный процесс переделки. И в этом есть синдром куриного яйца, когда мне нужны модульные тесты для рефакторинга такого большого кода, но у меня не может быть больше модульных тестов, если я не рефакторинг его :)
Сильно связанный код не позволяет мне разбивать тесты на более мелкие фрагменты. Также я не тестирую личные вещи, это мой личный выбор, который позволяет мне развиваться намного быстрее и при этом получать большую выгоду.
И я могу подтвердить, что все модульные тесты (с надлежащей изоляцией) на самом деле довольно быстрые, и у меня нет проблем с производительностью.
Дальнейшее уточнение:
Код сильно связан! К сожалению, изменение похоже на огромный процесс переделки. И в этом есть синдром куриного яйца, когда мне нужны модульные тесты для рефакторинга такого большого кода, но у меня не может быть больше модульных тестов, если я не рефакторинг его :)
Сильно связанный код не позволяет мне разбивать тесты на более мелкие фрагменты. Также я не тестирую личные вещи, это мой личный выбор, который позволяет мне развиваться намного быстрее и при этом получать большую выгоду.
И я могу подтвердить, что все модульные тесты (с надлежащей изоляцией) на самом деле довольно быстрые, и у меня нет проблем с производительностью.