You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#项目Klov Reporter无法保存显示截图问题求助(附异常)

解决C#中同时使用HtmlReporter与KlovReporter时截图无法在Klov显示的问题

我之前在项目里同时用这两个Reporter时也碰到过一模一样的问题,结合排查经验,给你几个可行的解决方向:

1. 核心问题:本地路径不符合Klov的URI规范

HtmlReporter可以直接识别本地文件路径(比如C:\tests\screenshots\test.png),但KlovReporter会尝试把这个路径当作URI解析,Windows本地路径的格式(带盘符的反斜杠)不符合URI规范,就会抛出UriFormatException。

解决方案:给KlovReporter传截图字节流而非本地路径
不要直接把本地截图路径传给Klov,而是将截图转为字节流上传,这样就能绕开URI解析的问题。示例代码如下:

// 捕获Selenium截图(如果用其他工具捕获,逻辑类似)
var screenshot = ((ITakesScreenshot)driver).GetScreenshot();
var screenshotBytes = screenshot.AsByteArray;

// 给HtmlReporter用本地路径(正常工作)
string localScreenshotPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "screenshots", $"{TestContext.CurrentContext.Test.Name}.png");
Directory.CreateDirectory(Path.GetDirectoryName(localScreenshotPath));
screenshot.SaveAsFile(localScreenshotPath, ScreenshotImageFormat.Png);
_htmlReporter.AddScreenCaptureFromPath(localScreenshotPath);

// 给KlovReporter用字节流,避免URI解析错误
_klovReporter.AddScreenCaptureFromByteArray(screenshotBytes, $"{TestContext.CurrentContext.Test.Name}.png");

2. 检查KlovReporter的初始化配置

如果字节流方式还是不行,要确认Klov的连接配置是否正确:

  • 确保MongoDB的连接URI格式正确(比如mongodb://localhost:27017,不要带多余的反斜杠或空格)
  • 确认Klov服务器(或MongoDB服务)处于运行状态,能被测试机器访问
  • 检查Reporter的项目名、报告名配置是否没有特殊字符

示例初始化代码:

var klovReporter = new KlovReporter();
// 正确的MongoDB连接URI
klovReporter.InitMongoDbConnection("mongodb://localhost:27017");
klovReporter.ProjectName = "MyTestProject";
klovReporter.ReportName = $"TestRun_{DateTime.Now:yyyyMMddHHmmss}";
// 绑定日志(可选)
klovReporter.SetLogger(log4net.LogManager.GetLogger(typeof(MyTestClass)));

3. 排查版本兼容性问题

ExtentReports和KlovReporter的版本不匹配也可能导致截图处理逻辑冲突:

  • 确保NuGet包中ExtentReports和ExtentKlovReporter的版本一致(比如都用4.1.0或最新稳定版)
  • 避免混用不同大版本的包(比如ExtentReports 5.x和KlovReporter 4.x)

最后验证

修改代码后,运行测试,检查Klov报告是否能正常显示截图,同时确认UriFormatException是否消失。如果还是有问题,可以打开Klov的日志(或MongoDB的日志),看看是否有更详细的错误信息辅助排查。

内容的提问来源于stack exchange,提问作者Appu Mistri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:26:30