Wir machen so etwas, wir haben drei Arten von Tests. Komponententests, die Ihnen sicherlich bekannt sind, aber wir führen auch eine Reihe von Akzeptanztests und Integrationstests durch, und letzteres ist relevant.
In unseren Integrationstests führen wir eine Reihe von WatiN-Tests gegen unsere QA-Umgebung durch, von der bekannt ist, dass bereits eine Umgebung läuft. Diese werden normalerweise ausgeführt, nachdem TeamCity einen Bereitstellungsaufbau für die QA-Umgebung ausgeführt hat. Diese Tests machen eine vollständige Integration gegen alle externen Dritten.
Was Sie vielleicht mehr interessiert, sind unsere Akzeptanztests, aber weisen Sie darauf hin, dass wir keine virtuelle Umgebung erstellen (dazu später mehr). Wir haben eine Reihe von Akzeptanztests, die alle Services in ihren eigenen Anwendungsdomänen hochfahren und Datenbanken mithilfe von Visual Studio-Datenbankprojekten bereitstellen. Da dies Akzeptanztests sind, werden alle Schnittstellen von Drittanbietern verspottet. Da die Dienste im Laufe der Zeit hochgespielt werden, müssen am Ende nur die Datenbanken aufgeräumt werden.
Das funktioniert für uns, aber ich habe darüber nachgedacht, es mit Integrationstests auf die nächste Ebene zu bringen und eine virtuelle Umgebung zu erstellen, die genau wie unsere Live-Umgebung bis zu Domain-Namen und IP-Adressen aussieht zeitaufwändig zu tun, aber hängt von der Art der virtuellen Umgebung ab, die Sie verwenden möchten.
Hier ist eine SO Frage, wie man Hyper-V Server mit MSBuild hochfährt, aber ich bin mir sicher, dass es andere Beispiele gibt, die Ant / Nant / Rake für Hyper-V / VMWare usw. verwenden.