以编程方式获取 specflow 测试中的一组测试 运行
Programmatically get a collection of tests within a specflow test run
我如何在 C# 中以编程方式获取所有 specflow/specrun 测试场景或测试 运行 期间测试的列表和计数(也就是选择了多个场景),并遍历它们的测试结果,以便我可以生成自己的状态报告和 pass/fail 图表。我想创建一个图表,在测试 运行 中提供一些失败与通过的测试。我想创建自己的自定义报告,尽管我知道我可以为此重用 specflow 的预设报告。
以防万一,如果我们选择了一个或两个场景并且 运行 选择了测试,如果我们想知道测试的总数 运行 用于创建具有场景名称和状态的任何自定义报告.. 下面的方法会帮助你.. 你可以将它们添加到列表中并将其显示在 UI 中作为首选
int executedTests = 0;
List<string> scenarioNames = new List<string>();
List<string> scenarioStatuses = new List<string>();
[AfterScenario]
public void ScenarioCounter()
{
CaptureScenarioInformation();
}
public void CaptureScenarioInformation()
{
scenarioName = ScenarioContext.Current.ScenarioInfo.Title;
PropertyInfo pInfo = typeof(ScenarioContext).GetProperty("TestStatus", BindingFlags.Instance | BindingFlags.NonPublic);
MethodInfo getter = pInfo.GetGetMethod(nonPublic: true);
scenarioStatus = getter.Invoke(ScenarioContext.Current, null).ToString();
scenarioNames.Add(scenarioName);
scenarioStatuses.Add(scenarioStatus);
executedTests++;
}
我如何在 C# 中以编程方式获取所有 specflow/specrun 测试场景或测试 运行 期间测试的列表和计数(也就是选择了多个场景),并遍历它们的测试结果,以便我可以生成自己的状态报告和 pass/fail 图表。我想创建一个图表,在测试 运行 中提供一些失败与通过的测试。我想创建自己的自定义报告,尽管我知道我可以为此重用 specflow 的预设报告。
以防万一,如果我们选择了一个或两个场景并且 运行 选择了测试,如果我们想知道测试的总数 运行 用于创建具有场景名称和状态的任何自定义报告.. 下面的方法会帮助你.. 你可以将它们添加到列表中并将其显示在 UI 中作为首选
int executedTests = 0;
List<string> scenarioNames = new List<string>();
List<string> scenarioStatuses = new List<string>();
[AfterScenario]
public void ScenarioCounter()
{
CaptureScenarioInformation();
}
public void CaptureScenarioInformation()
{
scenarioName = ScenarioContext.Current.ScenarioInfo.Title;
PropertyInfo pInfo = typeof(ScenarioContext).GetProperty("TestStatus", BindingFlags.Instance | BindingFlags.NonPublic);
MethodInfo getter = pInfo.GetGetMethod(nonPublic: true);
scenarioStatus = getter.Invoke(ScenarioContext.Current, null).ToString();
scenarioNames.Add(scenarioName);
scenarioStatuses.Add(scenarioStatus);
executedTests++;
}