2016-07-22 26 views
0

Ich habe festgestellt, dass, wenn ich die shardTestFiles-Option zum Ausführen von Gurken-Feature-Dateien parallel über jeden Browser in MultiCapabilities ausführen, startet ein Webdriver für jede Spec-Datei + Browser-Kombination. Dies geschieht unabhängig davon, ob die Feature-Datei ein Tag enthält, das den über guruumOpts.tags übergebenen Tags entspricht. Stattdessen scheint es die Tag-Übereinstimmung zu überprüfen, nachdem der Webdriver gestartet wurde, und dann für alle Features, die keine Übereinstimmung haben 0 testet und beendet erfolgreich.Winkelmesser shardTestFiles mit gurkeOpt.tags startet unnötige webdrivers

Dies verursacht eine Menge Lärm/Kapazitätsprobleme in der Souselabs-Konsole, da es eine VM für jede Feature-Datei startet, unabhängig davon, ob sie irgendetwas ausführen musste. Als Workaround versuchen wir, eine Tag-Übereinstimmung über Feature-Dateien vor der gractor-Aufgabe des Winkelmessers auf die gleiche Weise wie gurkejs auszuführen, um eine Liste von Feature-Datei-Spezifikationspfaden zu erzeugen, die in den Winkelmesser conf eingefügt werden, aber das scheint irgendwie hacky zu sein - Hat noch jemand dieses Verhalten gesehen?

+0

Wir haben am Ende die Tag-Filter-Logik von Gurkejs ausgeführt, um eine Liste von Feature-Dateien als Teil der Konstruktion des Winkelmessers Conf zu erstellen. Funktioniert, aber .. – AndrewV

Antwort

0

Soweit ich das sagen kann, ergibt sich daraus, wie shardTestFiles funktioniert. Von dem, was ich verstehe (und es basiert alles auf der Verwendung des Winkelmesser-Gurken-Framework-Pakets), wenn auf wahr gesetzt, werden die Spezifikationen an TaskScheduler von Protractor übergeben und eine Webdriver-Sitzung wird gestartet, dann werden sie einzeln nacheinander ausgeführt die Run-Methode des Frameworks, die sie wiederum an den Runner von Cucumber weitergibt, und erst dann wird die Tag-Filterung angewendet - also nach dem Start der Webdriver-Session.

Ihre "Hacky-Lösung" ist wahrscheinlich die Beste, die es gibt, da Sharding nicht für Gurken gedacht war.