在哪里发布由 VSTS 中的发布管道生成的 SpecFlow/Selenium 屏幕截图?

Where to publish SpecFlow/Selenium screenshots produced by a release pipeline in VSTS?

我正在使用 SpecFlow 和 Selenium 通过使用 VSTS Visual Studio Test 任务执行 xUnit 测试 运行 生成屏幕截图:

我已经使用默认参数值配置了 VS Test task,所以(我相信)它只是找到任何 DLL 并使用 xUnit 运行ner 运行s 它们。

在 运行ning 之后,特定版本的测试报告显示了预期的测试结果。但是,它不会显示生成的屏幕截图。

我正在尝试使用以下代码附加测试期间生成的屏幕截图:

    string path = System.IO.Directory.GetCurrentDirectory() + "TestScreenshot.png";

    OpenQA.Selenium.Screenshot ss = ((OpenQA.Selenium.ITakesScreenshot)Context.Driver).GetScreenshot();
    ss.SaveAsFile(path);

    var testContext = ScenarioContext.Current.ScenarioContainer.Resolve<Microsoft.VisualStudio.TestTools.UnitTesting.TestContext>();
    testContext.AddResultFile(path);

但这不会显示在测试报告的 attachments 部分。

看到this SO post我想也许我需要将屏幕截图存储在特定的"special folder"中,但我不知道该使用哪个文件夹以及如何安排它们以指示哪个测试它们所依附的。

看到 this documentation 我认为我需要的只是一个 Publish Test Results 任务并指示测试附件的存储位置,但这会出错并抱怨没有 TEST-*.xml 找到文件。我没有专门配置 VS Test task 来生成 TEST-*.xml 文件,因为测试结果似乎是自动检测到的。

据我所知,我得到的结果与 this bug report as linked from 中的结果相同,尽管修复应该是实时的。

如何 publish/upload/report 我的屏幕截图,以便它们在我的发布管道结束时作为测试报告的一部分可见?

如果您正在使用 xUnit 测试提供程序,根据此线程,它还没有 xunit.net 的 TestContext。 https://github.com/xunit/xunit/issues/621