ich bei der Einrichtung SpecFlow für verschiedene Ebenen der Tests, und als Teil der, dass ich möchte in der Lage zu filtern suchen, welche Tests ausführen.specflow Daten unter bestimmten Bedingungen überspringen
Zum Beispiel, ich möchte einen vollständigen GUI-Test ausführen, wo ich die Abhängigkeiten für GUI-Tests auf einer Entwicklungsumgebung aufbauen und alle mit @gui gekennzeichneten Spezifikationen mit den Schritten ausführen, die über die GUI ausgeführt werden. Ich möchte auch aus dem gleichen Skript nur die mit @smoke getaggten Tests ausführen und alle Abhängigkeiten, die für eine implementierte Umgebung benötigt werden, mit den Schritten einrichten, die über die API ausgeführt werden.
Ich bin mir bewusst, dass Sie Tags filtern können, wenn sie durch die specflow läufer laufen, aber ich muss auch die Art und Weise jeder Test im Rahmen des Testlaufs funktioniert. Außerdem möchte ich, dass diese Verhaltensänderung mit einer einzigen Konfigurations-/Befehlszeile geändert wird, wenn sie auf einem Build-Server ausgeführt wird.
Also meine Lösung so weit ist für jede Art von Testlauf Build-Konfiguration zu haben, und Config verwandelt, so kann ich das Verhalten in specflow injiziert, wenn der Testlauf gestartet wird. Aber ich bin mir nicht sicher über den richtigen Weg, um nach dem Tag zu filtern.
Ich konnte somethig wie folgt tun:
[BeforeFeature]
public void CheckCanRun()
{
if(TestCannotBeRunInThisContext())
{
ScenarioContext.Current.Pending();
}
}
ich denke, das würde funktionieren (es würde die Funktion nicht ausgeführt), aber der Test würde noch kommen auf meinem Testergebnisse, die chaotisch wäre, wenn ich m Ausfiltern der meisten Tests mit meinem Tag. Wenn es einen Weg gibt, kann ich das machen, was das Feature komplett aus dem Laufen bringt?
Wie führen Sie die Tests durch, wenn Sie diese Tests nicht ausführen möchten? Mit dem eingebauten VS-Runner? Von der Befehlszeile? Auf dem Build-Server? –
@SamHolder sowohl während der Entwicklung mit dem Resharper-Test-Runner und auf dem CI-Server (mit unterschiedlicher Konfiguration auf verschiedenen Build-Ebenen), und auch wenn möglich ein paar Spezifikationen auf einem bereitgestellten Server, um zu überprüfen, dass die Bereitstellung OK ist ... –