我正在使用SpecFlow和Selenium通过使用VSTSVisual Studio Test
任务执行xUnit测试运行来生成屏幕截图:
我已经用默认参数值配置了VS Test task
,所以(我相信(它只需找到任何DLL,并用xUnit运行程序运行它们。
运行后,特定版本的测试报告会按预期显示测试结果。然而,它并没有显示生成的屏幕截图。
我正试图附上测试期间生成的屏幕截图,代码为:
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
部分中。
看到这篇SO帖子后,我想也许我需要将屏幕截图存储在一个特定的"特殊文件夹"中,但我不知道该使用哪个文件夹,也不知道如何安排它们来指示它们连接到哪个测试。
看过这些文档后,我认为我只需要一个Publish Test Results
任务,并指示测试附件的存储位置,但这会出现错误,并抱怨找不到TEST-*.xml
文件。我并没有专门配置VS Test task
来生成TEST-*.xml
文件,因为测试结果似乎是自动检测到的。
据我所见,我得到的结果与这个SO帖子链接的错误报告中的结果相同,尽管修复应该是实时的。
我如何发布/上传/报告我的屏幕截图,以便它们在我的发布管道结束时作为测试报告的一部分可见?
如果你使用的是xUnit测试提供程序,根据这个线程,它还没有Xnit.net的TestContext。https://github.com/xunit/xunit/issues/621