Anche se la tua descrizione del problema non fornisce una visione approfondita della base di codice, penso di poter dire con sicurezza che il tuo problema è duplice.
Impara a scrivere i test giusti.
Dici di avere quasi mille test e hai 120 progetti. Supponendo che nella maggior parte dei casi questi progetti siano progetti di test, hai 1000 test per 60 progetti di codice di produzione. Questo ti dà circa 16-17 test pr. progetto !!!
Questa è probabilmente la quantità di test che dovrei coprire circa 1-2 classi in un sistema di produzione. Quindi, a meno che tu non abbia solo 1-2 classi in ogni progetto (nel qual caso la struttura del tuo progetto è troppo fine) i tuoi test sono troppo grandi, coprono troppo terreno. Tu dici che questo è il primo progetto che stai facendo correttamente a TDD. A dire, i numeri che presenti indicano che questo non è il caso, non stai facendo la proprietà TDD.
Devi imparare a scrivere i test giusti, il che probabilmente significa che devi imparare come rendere il codice testabile in primo luogo. Se non riesci a trovare l'esperienza all'interno del team per farlo, ti suggerisco di assumere l'aiuto dall'esterno, ad es. sotto forma di uno o due consulenti che aiutano la tua squadra per una durata di 2-3 mesi a imparare a scrivere codice testabile e piccoli test di unità minimi.
Come confronto, sul progetto .NET a cui sto lavorando attualmente, possiamo eseguire circa 500 test unitari in meno di 10 secondi (e questo non è stato nemmeno misurato su una macchina con specifiche elevate). Se quelle fossero le tue cifre, non avresti paura di eseguirle localmente ogni tanto.
Impara a gestire la struttura del progetto.
Hai diviso la soluzione in 120 progetti. Questo è per i miei standard una quantità impressionante di progetti.
Quindi, se ha senso avere effettivamente quella quantità di progetti (che ho la sensazione che non sia così - ma la tua domanda non fornisce abbastanza informazioni per esprimere un giudizio qualificato su questo), devi dividere i progetti in componenti più piccoli che possono essere compilati, messi in versione e distribuiti separatamente. Quindi, quando uno sviluppatore esegue l'unità della suite di test, ha solo bisogno di eseguire i test relativi al componente a cui sta lavorando attualmente. Il server di build dovrebbe occuparsi di verificare che tutto si integri correttamente.
Ma la suddivisione in più parti di un progetto in più componenti, versioni e distribuzioni separate richiede, nella mia esperienza, un team di sviluppo molto maturo, una squadra più matura di quanto io abbia la sensazione che il tuo team sia.
Ma in ogni caso, devi fare qualcosa per la struttura del progetto. Separare i progetti in componenti separati o avviare la fusione dei progetti.
Chiediti se hai davvero bisogno di 120 progetti?
P.S. Potresti voler controllare NCrunch. È un plug-in di Visual Studio che esegue automaticamente il test in background.