C'è un modo per accedere ai risultati del test (successo/fallimento, forse anche asserzioni, ecc.) Da un gancio Specflow AfterScenario? Non vedo nulla, ma sembra qualcosa che dovrebbe essere incluso.Risultati del test Specflow accessibili dal gancio AfterScenario?
5
A
risposta
4
È possibile ottenere il risultato del test sbirciando in ScenarioContext.Current. C'è una proprietà TestError che può aiutarti.
Vedere questo wiki (https://github.com/techtalk/SpecFlow/wiki/ScenarioContext) per ulteriori informazioni.
1
Sì, c'è, ma è necessario utilizzare la riflessione. Nel blocco [AfterScenario] utilizzare il seguente:
PropertyInfo pInfo = typeof(ScenarioContext).GetProperty("TestStatus", BindingFlags.Instance | BindingFlags.NonPublic);
MethodInfo getter = pInfo.GetGetMethod(nonPublic: true);
object TestResult = getter.Invoke(ScenarioContext.Current, null);
TestResult sarà OK, MissingStepDefinition ecc
0
Io uso ScenarioContext per fare questo. Ecco alcuni esempi di codice che si spera abbiano senso (non si ottiene il valore effettivo di asserzione - non è possibile per quanto ne so), ma significa che posso lasciare il browser aperto se il test fallisce:
[AfterScenario]
public void AfterScenario() {
if (ScenarioContext.Current.TestError == null) {
// Test failed (use ScenarioContext.Current.TestError to print out error to logs if required)
_driver.Quit
}
}