2009-05-29 10 views
2

Ich weiß, dass es keine richtige oder falsche Antwort darauf gibt, aber es wäre SEHR hilfreich zu sehen, wie andere ihre Testprojekte strukturiert haben? Speziell für Multi Assembly Lösungen und verschiedene Testphasen, Unit, Integration, System?Best Practice für die Strukturierung von Visual Studio Testing Projects

Und zu guter Letzt wäre es hilfreich zu sehen, welche Struktur sich gut für die Ausführung von Testaufbauten auf einem Continuous Integration Server (TeamCity) eignet?

zunächst mit Ich anfangen:

Test (Namespace) 
--Unit (Folder) 
----ClassATests 
----ClassBTests 
--Integration (Folder) 
----ClassA+BTests 
----DBTests 

Antwort

1

Ich habe heute genau über diese Sache bei der Arbeit nachgedacht. Ich habe ein Testprojekt geerbt, das von mehreren Personen in der Vergangenheit gepflegt und aktualisiert wurde, und enthält daher eine eher verwirrende Hierarchie.

Tests (Namespace) 
-- Infrastructure (Folder) 
---- general utility classes (common to all tests) 
---- any other config 
-- ClassATests (Folder) 
---- ClassATestBase (base class for setup of common mock objects etc.) 
---- ClassATestMethods (helper methods for the ClassATests) 
---- ClassATests (main test class) 
-- ClassBTests (Folder) 
etc. 

ich diesen Ansatz gefunden, so weit zu nützlich habe, wie es die meisten des Code bedeutet, dass während jedem laufen:

In einem Versuch zur Vereinfachung, ich habe mit dem folgenden Aufbau begonnen gegebener Test kann im selben Ordner gefunden werden. Außerdem soll das Szenario einer großen TestMethods-Klasse vermieden werden.

Dies ist vielleicht nicht die eleganteste Lösung (Entschuldigung, kein Wortspiel beabsichtigt!), Aber es funktioniert für mich derzeit. Alle Vorschläge sind jedoch sehr willkommen!

1

Ich halte meine Unit-Tests und Integrationstests in getrennten Baugruppen (x.Tests.dll, y.IntegrationTests.dll), um leicht in der Lage sein zu finden Testen Sie Baugruppen, die während des Buildprozesses ausgeführt werden. Ich kann dann einfach * .Tests.dll finden und sie als Teil eines täglichen Builds ausführen. Integrationstests werden in bestimmten Umgebungen manuell ausgeführt, können jedoch weiterhin mit einem einfachen Buildskript ausgeführt werden.

Abgesehen davon ist TestClass-per-Class so ziemlich die Regel, der ich gefolgt bin, mit der Ausnahme, dass kleine Hilfsklassen, die alle aus einem einzigen HelperTests-Gerät getestet werden.

Verwandte Themen