Ich denke darüber nach, wo ich das Unit / Integrationstest-Projekt ablegen soll. Ich folge dem 1 Testprojekt pr. Projektkonvention
Ich kann mir 3 Wege vorstellen, die mir alle gut erscheinen, die es schwer machen zu wählen: -)
Was wählen Sie und warum?
Option 2 ist meine bevorzugte. Abgesehen von allem anderen ist es nur der Standard, wenn Sie ein neues Klassenbibliotheksprojekt erstellen - es befindet sich im selben Lösungsverzeichnis wie das / die Produktionsprojekt (e).
Um dem Argument, ein Projekt ohne seine Tests auszuprobieren, entgegenzuwirken, finde ich es relativ selten, nur ein Projekt und nicht eine ganze Lösung auszuprobieren. Wenn Sie eher ein "projektbasierter" als ein "lösungsorientierter" Shop sind, könnte das die Dinge ändern.
Ich möchte alle Projekte physisch auf der gleichen Ebene haben. Ich habe keinen großen Streit, nur aus Gründen der Einfachheit. Schließlich zeigt Visual Studio alle Projekte auf der gleichen Ebene.
%Vor%Testprojekt wird neben die Projekt testet es, in einem "Projekt". Tests Mappe. Ich glaube, das ist was Roy Osherove empfiehlt.
Das ist mein persönlicher Favorit. Es ist diejenige, die die Absicht am deutlichsten vermittelt und es auch leicht macht, auf einen Blick zu erkennen, welche Testprojekte zu welchen Projekten gehören, wenn Sie sie in einem Verzeichnis betrachten oder einen Grund haben, Projekte in einer einzigen Lösung zu gruppieren.
Ich würde mit # 1 gehen, damit Sie beim Testen des Projekts auch die Tests durchführen. Sonst werden Tests noch mehr zu einem Nachgedanken.
Der Standard in einer Visual Studio 2010 Asp.Net MVC-Lösung ist ein anderes Projekt in derselben Lösung. Dies ist eine große Hilfe, wenn es darum geht, die Zusammenstellung mit all Ihren Referenzen zu testen.
Ich glaube, Option 2 ist die beste Wahl. Tests sind eine großartige Möglichkeit, Code zu dokumentieren. Sie machen die Semantik von Methoden und Klassen deutlich. Es sollte für einen Programmierer leicht sein, zum Testcode für eine Methode zu springen, die er zweifelhaft findet.
Wenn Sie andererseits den Testcode im selben Projekt aufbewahren, wird der kompilierte Binärausgang größer und zwingt das Projekt Abhängigkeiten zu haben, die nur vom Testcode benötigt werden.
Tags und Links .net c# unit-testing