Wie kann ich das Szenario und Beispielnamen in Cucumber zugreifen?
-
21-08-2019 - |
Frage
Ich bin mit Gurke Testskripte zu erzeugen, die durch ein Werkzeug oder menschliche ausgeführt werden kann ... so nicht die Standard-Anwendung.
Allerdings würde Ich mag das Szenario und Beispielnamen durchlaufen bis zur meiner Ausgabe.
Ist das möglich?
Lösung
Found it .. (mit etwas Hilfe von Tim Walker)
Before do |scenario|
puts "Before Scenario: #{scenario.to_sexp[2]}"
.
.
.
end
können Ihre SExpression unterscheiden, so dass es lohnt sich, einen scenario.to_sexp.inspect
tun, um zu sehen, was der Baum ist.
Aslak ist sehr daran interessiert Eigenschaften auf seine Klassen auszusetzen zu vermeiden (die eine Entscheidung, die ich mit einigen passieren, also bin ich glücklich, diese Arbeit zu tun, um).
Andere Tipps
Eine ernstere Antwort (oder zumindest Vorschlag): Verwendung von Rubys Reflexion machen, um zu versuchen zu finden, was Sie suchen. Schnappen Sie wahrscheinlich Objekte, herauszufinden, welche Methoden sie haben, und sehen, ob Sie es finden können. Zum Beispiel:
File.open('happy_hunting.log','a') { |f|
f.print "Scenario supports: #{(scenario.methods - Object.methods).inspect}\n"
}
und wiederholen Sie es dann, um herauszufinden, was, wo.
Ein weiterer Vorschlag, Blick auf die Quelle.
Ich habe etwas lückenhaft. Als ich diese Informationen nur für das Debuggen verwenden, wird dies jetzt arbeiten, bis ich etwas besseres finden.
@Before
public void printTestInfoBeforeScenario(Scenario scenario) {
LOGGER.info("Upcoming Test: "+scenario.getSourceTagNames());
}
@After
public void printTestInfoAfterScenario(Scenario scenario) {
LOGGER.info("Test Complete: " + scenario.getSourceTagNames() + " Status: " + scenario.getStatus());
}