我正在執行使用SpecFlow和Visual Studio的自動化場景。無法嵌入截圖到SpecFlow html報告
我想將自定義圖像嵌入到由SpecFlow生成的HTML報告中。這張圖片是我在Hooks場景失敗時所採用的截圖。
請幫我一把。
這是我在HTML報告是送走 - enter image description here
我正在執行使用SpecFlow和Visual Studio的自動化場景。無法嵌入截圖到SpecFlow html報告
我想將自定義圖像嵌入到由SpecFlow生成的HTML報告中。這張圖片是我在Hooks場景失敗時所採用的截圖。
請幫我一把。
這是我在HTML報告是送走 - enter image description here
看看在SeleniumWebTest示例項目here。此示例項目顯示瞭如何在報告中包含屏幕截圖。雖然該示例是基於Selenium的,但其他框架也適用相同的原則。
在「包含屏幕截圖」下,可以找到here的更深入的解釋。實質上,您需要濫用控制檯並使用它來輸出圖像的文件路徑。
任何寫入控制檯的數據都可以在您的報告中找到(這是報告收到跟蹤詳細信息的方式)。您將需要解析寫入控制檯的數據並刪除要嵌入的文件路徑。確保完全去除圖像路徑,以便不輸出文件路徑作爲從控制檯收到的其他跟蹤信息的一部分。
編輯:我自從發現樣本項目中的模板似乎存在問題。模板中的以下部分被竊聽: class="log">@Raw(FormatTechMessages(traceEvent.TechMessages.TrimEnd()).Replace("SCREENSHOT[ <a href="http://specflow.org/plus/documentation/,-/" data-page=",-"<img width='1000' src=").Replace("</a> ]SCREENSHOT", "</img>"))</pre>
這是因爲控制檯不再將該文件格式化爲超鏈接,因此從不會找到替換字符串。更新在ReportTemplate.cshtml此行似乎做的伎倆: <pre class="log">@Raw(FormatTechMessages(traceEvent.TechMessages.TrimEnd()).Replace("SCREENSHOT[ ", "<img width='1000' src=\"").Replace(" ]SCREENSHOT", "\"</img>"))</pre>
由於控制檯不再格式化文件作爲超鏈接,您只需要更換填充(在這種情況下,「屏幕截圖[]屏幕截圖「),而是用<IMG>
標籤封裝路徑。您還需要在文件路徑中添加引號。
感謝您的回覆。我完全按照SeleniumWebTest項目中提到的方式進行。但仍面臨同樣的問題。 - > AfterScenarioHook代碼 - Console.WriteLine($「SCREENSHOT [file:/// {tempFileName}] SCREENSHOT」); - >生成的HTML報告爲 - file:/// C:/ Users/xxxxx/Documents/Visual Studio 2015_Backup/Projects/MyProject.Specs/TestResults/tmp366D.jpg –
另外我僅使用SpecFlow,SpecRun。 它僅在付費版中可用嗎? –
是的,擴展報告功能僅在SpecFlow + Runner中可用,不在SpecFlow的開放源代碼版本中。 –