Хоча ваш опис проблеми не дає глибокого розуміння кодової бази, я думаю, що я сміливо можу сказати, що ваша проблема двояка.
Навчіться писати правильні тести.
Ви кажете, що у вас майже тисяча тестів, і у вас 120 проектів. Якщо припустити, що більшість половини цих проектів є тестовими проектами, у вас є 1000 тестів до 60 проектів з кодом виробництва. Це дає вам приблизно 16-17 тестів pr. проект !!!
Це, мабуть, кількість тестів, які мені доведеться охопити близько 1-2 класів у виробничій системі. Тож якщо у вас є лише 1-2 класи в кожному проекті (у цьому випадку ваша структура проекту є надто дрібнозернистою) ваші тести занадто великі, вони покривають занадто багато ґрунту. Ви кажете, що це перший проект, який ви робите TDD належним чином. Скажімо, наведені вами цифри вказують, що це не так, ви не володієте властивістю TDD.
Вам потрібно навчитися писати правильні тести, що, ймовірно, означає, що вам потрібно навчитися в першу чергу робити тест на код. Якщо ви не можете знайти досвід роботи всередині команди, я б запропонував найняти допомогу ззовні, наприклад, у формі одного або двох консультантів, які допомагають вашій команді протягом 2-3 місяців навчитися писати тестовий код, і мінімальні одиничні тести.
Для порівняння, у проекті .NET, над яким я зараз працюю, ми можемо виконати приблизно близько 500 одиниць тестів менш ніж за 10 секунд (а це навіть не вимірювалося на високоспецифічній машині). Якби це були ваші цифри, ви б не побоялися запускати їх локально кожен раз.
Навчіться керувати структурою проекту.
Ви розділили рішення на 120 проектів. Це, на мої стандарти, приголомшлива кількість проектів.
Тож якщо є сенс насправді мати таку кількість проектів (які, на мою думку, це не так, - але ваше запитання не дає достатньої інформації для того, щоб кваліфікувати це рішення), вам потрібно розділити проекти на більш дрібні компоненти, які можна будувати, переробляти та розгортати окремо. Отже, коли розробник запускає блок тестового набору, йому / їй потрібно лише запустити тести, що стосуються компонента, над яким він працює. Сервер збирання повинен подбати про те, щоб все інтегрувалося правильно.
Але поділ проекту на декілька складових складання, переосмислення та розгортання окремо вимагає, з мого досвіду, дуже зрілої команди розвитку, команди, яка є більш зрілою, ніж я відчуваю, що ваша команда.
Але в будь-якому випадку потрібно зробити щось щодо структури проекту. Або розділіть проекти на окремі компоненти, або розпочніть об'єднання проектів.
Запитайте себе, чи справді вам потрібно 120 проектів?
ps Ви можете перевірити NCrunch. Це плагін Visual Studio, який автоматично запускає ваш тест у фоновому режимі.