Frage

Sollten Sie in .NET Unit -Testprojekte mit dem Rest der Lösung platzieren? Oder sollte es eine Testlösung geben, die alle Testprojekte beherbergt?

Wir haben alle Testerprojekte in unserer Codebasislösung ... es scheint etwas umständlich zu sein.

Was machst du normalerweise?

War es hilfreich?

Lösung

In unserem aktuellen Projekt haben wir uns entschlossen, alle Unit -Tests in separate Projekte zu setzen. Der Anwendungscode und die Tests befinden sich in derselben Lösung, aber zumindest können wir eine Version ohne den Unit -Testcode erstellen (und bereitstellen).

Der Nachteil davon war so weit -, dass Ihre Unit -Tests manchmal bestimmte Mitglieder des Anwendungscode (geschützt und Interna) nicht erreichen können, aber dies führt normalerweise dazu, dass unser Design verbessert werden könnte.

Und ich denke, ich sollte auf einen ähnlichen Thread hinweisen Hier mit mehr Antworten zum gleichen/ähnlichen Thema.

Andere Tipps

Ich habe sie immer als Teil der Lösung gehalten - sie sind schließlich Teil der Lösung. Sie können jedoch mehrere Lösungen für unterschiedliche Ansätze zum Anzeigen Ihrer Projekte haben. Eine testlose Lösung ist daher möglicherweise das, was Sie für einige Fälle erstellen möchten.

Unser Testcode wird nicht versendet, aber sie sind Teil der Lösung als Ganzes. Unser Bauherr trennt Testanordnungen und Kernkomponenten. Aus Sicht des Lösungsmanagements scheint eine Lösung mit über 140 Projekten überwältigend zu sein.

Wir verwenden immer ein separates Projekt innerhalb derselben Lösung.

Dies bedeutet, dass wir uns sicher sein können (unter Verwendung von Referenzen), dass der Einheits-Test-Code auch unsere expliziten Referenzen testet (anstatt implizit eine Sichtbarkeit von etwas zu finden, weil er sich in derselben Baugruppe befindet-z. B. "intern").

Im Allgemeinen stelle ich Unit -Tests in ihre eigenen Projekt- und Integrationstests in ihr eigenes Projekt innerhalb der Anwendungslösung ein.

Wo ich arbeite, erwägen wir, Webtests in eine separate Lösung zu bringen. Wir planen, Web -Testautoring mit dem QA -Team zu teilen, und wir möchten nicht, dass diese Tests zu einer Haftung für Build werden.

Ich verwende nicht .NET, aber wenn ich Testfälle jeglicher Art entwickle, halte ich sie vom Rest des Codes isoliert, damit ich die Anwendung ohne Tests bereitstellen kann. Der Benutzer braucht das Zeug nicht oder will sogar.

Schauen Sie sich das Design Ihres Projekts an. Wenn es sich in der Nähe des MVC -Layouts oder einer seiner Alternativen befindet, sollten Sie unterschiedliche Maßstäbe verschiedener Baugruppen haben. Machen Sie für jede Ebene Ihres Designs einen Test -Unterassembly.

Unser Testprojekt läuft normalerweise anstelle des Projekts, das die Exe erstellt. Unser EXE -Projekt ist eine dünne Hülle, die Ereignisse und Informationen an eine mit Controller -Klassen gefüllte Versammlung übergibt, in der der Code, den die meisten Personen in ein EXE -Projekt einfügen. Dadurch kann das Testprojekt vorgeben, für 90% des normalen Testprozesses die Exe zu sein.

Wir erarbeiten immer noch die beste Arrangement für die tatsächlichen Testfälle. Derzeit haben wir mehrere wichtige Ebenen unseres Framework -Dienstprogramms, Applicaiton -Objekte, UI -Frameworks, Befehle, UI -Controller und EXE. Wir haben eine Baugruppe für jede Ebene mit Ausnahme von EXE (das manuell getestet wird). Wenn wir eine Baugruppe bearbeiten, laden wir die Testbaugruppe für diese Ebene. Wenn wir etwas tun müssen, das jede Ebene berührt, müssen wir alle Testbaugruppen laden.

Während unseres One -Button -Build -Vorgangs führen wir das Testprojekt Exe aus. (Wir haben ein separates Dienstprogramm dafür).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top