2010-05-11 24 views
14

Riesiges Projekt Tonnen von Klassen und Verzeichnissen.Unit Testing Verzeichnisstruktur

Drehe ich mein Unit-Test-Projekt diese Verzeichnisse oder speichere ich alle im Root-Verzeichnis?

Etwas nervig, um Verzeichnisänderungen und Klassennamen zweimal ändern zu müssen.

+0

Es wäre hilfreich, wenn Sie die Sprache, in der Sie arbeiten, zu den Tags hinzugefügt haben. – Jherico

+2

Warum nicht Unittests direkt in das Projektverzeichnis einfügen? – Stephen

Antwort

17

Sie möchten auf jeden Fall, dass Ihre Unit-Testverzeichnisse die Verzeichnisse des getesteten Codes spiegeln. Es ist ein milder Schmerz, manuell einzurichten, aber dieser Schmerz dauert nicht so lange wie der Schmerz, alle Ihre Tests in einem Haufen zu haben, oder noch schlimmer, sie in einer anderen Struktur als der getestete Code zu haben.

Offensichtlich verwenden Sie nicht Java, oder Ihr Testcode hätte bereits die gleiche Paketstruktur wie der zu testende Code und die Frage wäre strittig. (Mindestens ich kann sich nicht vorstellen, es anders zu tun.)

+1

abgeordnet. Jede vernünftige IDE erleichtert das Refactoring von Verzeichnissen und Namen. – Jherico

+2

Je nach Sprache würde ich mehr auf Pakete/Module/Namespaces als auf Verzeichnisse setzen. –

+0

@ Gabriel: Ich stimme zu. Ich wollte das tun, aber @zachary hat keine Sprache angegeben. –

5

Ich würde bevorzugen die Unit-Tests im Projektverzeichnis mit, um sie zu halten körperlich nahe dem Code, den sie unterstützt werden. Das Verzeichnis, das die Komponententests für eine Komponente/Paket enthält, befindet sich in diesem Komponenten-/Paketverzeichnis in einem bestimmten Verzeichnis test auf derselben Ebene wie das Verzeichnis src. Das mache ich für C/C++ - Projekte FWIW. Der Hauptgrund besteht darin, die Komponente und ihre Komponententests gleichzeitig kompilieren zu können, um die Komponententests sichtbar zu machen (unsere älteren Komponenten haben nicht alle Einheitentests).

Auf diese Weise hat jede Änderung der Verzeichnisstruktur keinen Einfluss auf die Struktur der Testverzeichnisse, da die Komponententests zusammen mit dem Produktionscode verschoben werden. Mit zwei parallelen Verzeichnisstrukturen ist eine Form eine Duplizierung für mich.