可以将报告发送到 ReportPortal for .net (Specflow) 中的一次启动

Possibility to send reports to one launch in ReportPortal for .net (Specflow)

我需要将来自不同 OS 的报告和测试运行发送到报告门户中的同一个启动。 如何做到这一点?

以下是我的项目是如何完成的:

  1. CI 服务器创建 RP 启动并将启动 ID 保存到测试二进制文件的 app.config。
  2. 测试二进制文件被复制到虚拟机并运行在那里。
  3. 当测试开始时,他们看到 app.config 中有启动 ID,并且不会创建新的启动 - 他们会重新使用现有的启动 ID。他们也不会在完成后关闭发布。

    [BeforeTestRun(Order = -30000)]
    public static void BeforeTestRunPart()
    {
        ReportPortalAddin.BeforeRunStarted += ReportPortalAddin_BeforeRunStarted;
        ReportPortalAddin.BeforeRunFinished += ReportPortalAddin_BeforeRunFinished;
    }
    
    public static void ReportPortalAddin_BeforeRunStarted(object sender, RunStartedEventArgs e)
    {
        var launchId = SettingsManager.CommonSettings.ReportPortalLaunchId;
        if (launchId.IsNullOrEmpty() == false)
        {
            e.Canceled = true;
            Bridge.Context.LaunchId = launchId;
        }
    }
    
    public static void ReportPortalAddin_BeforeRunFinished(object sender, RunFinishedEventArgs e)
    {
        var launchId = SettingsManager.CommonSettings.ReportPortalLaunchId;
        if (launchId.IsNullOrEmpty() == false)
        {
            e.Canceled = true;
        }
    }
    
  4. 当所有测试都运行时,CI服务器关闭RP启动。