Отражение для получения статуса теста в Specflow 2.3.1 не работает - PullRequest
0 голосов
/ 23 мая 2018

Когда я пытаюсь получить свойство TestStatus в specflow 2.3.1, оно не работает.Любой обходной путь для этого?

Ошибка = System.NullReferenceException: ссылка на объект не установлена ​​для экземпляра объекта.В основном, pInfo = null

PropertyInfo pInfo = typeof(ScenarioContext).GetProperty("TestStatus", BindingFlags.Instance | BindingFlags.NonPublic);
MethodInfo getter = pInfo.GetGetMethod(nonPublic: true);object TestResult = getter.Invoke(ScenarioContext.Current, null);

Ответы [ 2 ]

0 голосов
/ 24 июня 2018

С новой версией ниже код работает в нашем коде

PropertyInfo pInfo = typeof(ScenarioContext).GetProperty("ScenarioExecutionStatus", BindingFlags.Instance | BindingFlags.Public);
MethodInfo getter = pInfo.GetGetMethod(nonPublic: true);
object TestResult = getter.Invoke(ScenarioContext.Current, null);
0 голосов
/ 24 мая 2018

Причина, по которой вы получаете эту ошибку, заключается в том, что мы изменили внутренние компоненты этого класса.

Изменение состояло в том, что мы сделали TestStatus общедоступным (и переименовали его).

Теперь вы можете получить к нему доступ через открытое свойство ScenarioExecutionStatus (https://github.com/techtalk/SpecFlow/blob/master/TechTalk.SpecFlow/ScenarioContext.cs#L54)

...