Bir Specflow AfterScenario kancasından test sonuçlarına (başarı/başarısızlık, belki de iddialar, vb.) Erişmek için herhangi bir yol var mı? Hiçbir şey görmüyorum, ama içerilecek bir şey gibi görünüyor.AfterScenario kancasından erişilebilen Specflow test sonuçları?
5
A
cevap
4
Test sonucunu ScenarioContext.Current içine bakarak göz atabilirsiniz. Size yardımcı olabilecek bir TestError özelliği var.
Daha fazla bilgi için bu vikiye (https://github.com/techtalk/SpecFlow/wiki/ScenarioContext) bakın.
1
Evet, ancak yansıma kullanmanız gerekiyor. senin [AfterScenario] bloğunda aşağıdaki kullanın:
PropertyInfo pInfo = typeof(ScenarioContext).GetProperty("TestStatus", BindingFlags.Instance | BindingFlags.NonPublic);
MethodInfo getter = pInfo.GetGetMethod(nonPublic: true);
object TestResult = getter.Invoke(ScenarioContext.Current, null);
TestResult Tamam olacak
0
vb MissingStepDefinition ben ScenarioContext bunu kullanın. İşte, umarım mantıklı olan bir örnek koddur (bildiğim kadarıyla gerçek bir değer elde edemez), fakat test başarısız olursa tarayıcıyı açık bırakabileceğim anlamına gelir:
[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
}
}