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