MSpec/Selenium 测试失败时如何保存屏幕截图?

How do I save a screenshot when an MSpec/Selenium test fails?

我正在使用 MSpec 来驱动一些使用 Selenium WebDriver 的自动化 UI 测试。很像我在网上找到的the examples。我无法在测试失败时获取屏幕截图。

我在另一个问题上看到了评论,因为他们在示例网络规范中有一个 ResultSupplementer。但是,ResultSupplementer似乎在最新版本的Mspec(0.9.1)中不存在。

在最新版本的 mspec 中是否有不同的方法来执行此操作?最终,我将生成 HTML 报告作为 TeamCity 工件,并在任何失败的规范中包含屏幕截图。

我已经为最新版本的 MSpec 更新了示例(简而言之,您需要自己实现 ISupplementSpecificationResults)。

我还合并了解决方案并将 MVC 项目转换为 Nancy。您会发现在过去几年中出现了更多与基础架构相关的代码,这些代码围绕各种事物展开,例如

  • IIS Express 记录的状态代码 4xx 和 5xx
  • IIS 和 Chrome 其他进程绑定的驱动程序端口
  • 页面对象使用高级 API
  • 访问 Web 驱动程序
  • 我使用 Paket 进行依赖管理,因为它比普通的 NuGet
  • 强大得多

综上所述,您需要 运行 msbuild.exe mspec-samples.sln 然后 All-Specs.cmd。我还检查了 TeamCity 构建是否创建了屏幕截图。