È meglio tenere insieme i test in un progetto correlato al progetto che stai testando.
MyProject
MyProject.Tests
MyLibrary
MyLibrary.Tests
Ovviamente la duplicazione del codice è una cosa negativa. Ma penso che sia un brutto segno che hai bisogno di duplicare il codice. Non vuoi collegare questi due progetti di test in quanto entrambi dovrebbero rovinarsi in modo indipendente e limitarsi a testare il loro progetto.
Supponiamo che entrambi i progetti utilizzino la stessa dipendenza, quindi entrambi i test devono prendere in giro questa dipendenza.
Potresti essere tentato di mettere quell'impostazione di simulazione in una libreria comune. Ma lo considererei un odore di codice. Entrambi i test richiedono davvero la stessa configurazione? sicuramente stiamo testando un comportamento diverso.
Tuttavia, potresti avere una versione in memoria della dipendenza che usi per il mocking. Ovviamente andrebbe nella sua libreria. che potrebbe essere condiviso e utilizzato come simulazione in entrambi i progetti di test.
Il pensiero è che la versione in-memory è una cosa reale di per sé e la logica di installazione su misura sarebbe ancora contenuta in ogni progetto di test.