2016-09-21 3 views
-1

Wir haben mehrere Lösungen, die ein Projekt namens DogService verwenden, und sie haben dies als eine Projektverweis innerhalb der Lösung hinzugefügt.Wo sollten Testprojekte platziert werden?

Wenn ich will es Unit-Tests für DogService und rufen DogService.Tests schaffen, wo würde ich stelle dieses Projekt physisch?

Sollten die Unit-Tests für ein Projekt in jeder Lösung enthalten sein, die auf das Projekt verweist?

+1

IMO, sollten sie in der gleichen Lösung wie das DogService-Projekt platziert werden. Projekte, die einfach auf DogService.dll verweisen, sollten das DogService-Projekt nicht selbst testen. – itsme86

+0

@ itsme86 mehrere Lösungen beziehen sich auf DogService als eine Projektreferenz, sollten alle Lösungen auch das Testprojekt bekommen? –

+1

Die Antwort ist rein meinungsbezogen, aber da Sie _project_references verwenden und die Möglichkeit haben, den Code zu ändern, sollten Sie das Unit-Test-Projekt mit einschließen, damit Sie die Unit-Tests aktualisieren und ausführen können, wenn sich der Code ändert. –

Antwort

1

Hängt davon ab, wie Sie mit DogService arbeiten. Wenn jedoch irgendeine Änderung des Hundedienstes von irgendeiner der Lösungen kommen kann, dann sollte jede Lösung die Einheitentests hinzufügen. Im allgemeinen Strukturierung Bibliotheken wie

/Lib 
     /DogService 
      /DogService 
      /DogServiceTests 

    /MainProject/... 

dies ist optimiert mit gut funktionieren: -

https://github.com/ingydotnet/git-subrepo

Auch die kontinuierliche Build-Tool baut es dann als Teil eines Pull-Anforderung und führt die Tests aller Bibliotheken, so dass es dann in den Master jeder Bibliothek zusammengeführt werden kann.

Alternativ können Sie Ihre Bibliotheken als vorgefertigte Assemblys mithilfe eines privaten nuget-Repositorys verteilen. Wenn Sie dies tun, sind die Tests in keiner Lösung erforderlich. Der einzige Nachteil davon ist, dass es etwas mühsamer sein kann, Änderungen über mehrere Bibliotheken hinweg vorzunehmen.

+0

wenn Sie dies tun benutze gitsubrep, verwende genau zu diesem Zeitpunkt den Zweig 'issue/142' –

Verwandte Themen