在specflow测试运行中以编程方式获取一组测试

时间:2018-09-29 13:58:40

标签: c# specflow

我如何在C#中以编程方式获取所有Specflow / specrun测试方案或测试运行期间的测试的列表和计数(又名多个方案),并遍历其测试结果,以便生成自己的状态报告以及通过/失败图表。我想创建一个图表,在测试运行中提供许多失败与通过的测试。我想创建自己的自定义报告,尽管知道我可以为此使用specflow的预设报告。

1 个答案:

答案 0 :(得分:0)

如果要选择一个或两个方案并运行选定的测试,如果我们想知道创建具有方案名称和状态的任何自定义报告所用的测试总数,则以下方法将为您提供帮助。您可以将它们添加到列表中,并根据需要在用户界面中显示

    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++;
    }