【问题标题】:Testcafe - How to set relative instead of absolute screenshot path in reportsTestcafe - 如何在报告中设置相对而不是绝对截图路径
【发布时间】:2019-07-19 07:41:33
【问题描述】:

我正在使用规范和 xunit 报告。我的 .testcaferc.json 是:

    {
  "screenshotPath": "artifacts/screenshots",
  "takeScreenshotsOnFails": true,
  "screenshotPathPattern": "${DATE}_${TIME}/${USERAGENT}/test-${TEST_INDEX}.png"
}

当规范中的测试失败并且 xunit 报告显示屏幕截图的链接时,但该链接具有绝对路径。当我在本地运行测试时没关系。在 Jenkins CI/CD 中运行时,由于使用“工作区”文件夹中的相对路径,发布 xunit 报告无法使用绝对路径找到屏幕截图。有没有办法配置 Testcafe 将相对路径放入 testRunInto.screenshotPath。我需要任何报告提供者的屏幕截图的相对路径。

更新:我正在使用 Jenkins 代理服务器运行测试。在这种情况下,工作区的绝对路径:/home/jenkins/workspace/e2e。屏幕截图位于相对路径:artifacts/screenshots 或绝对路径 /home/jenkins/workspace/e2e/artifacts/screenshots。在 xunit 报告(或任何其他)中,我们得到了屏幕截图的绝对路径。当所有测试完成后,Jenkins Agent 将整个工作区推送到主 Jenkins 服务器,工作区的绝对路径变为:/home/jenkins/job/test/ws/e2e 和截图路径:/home/jenkins/job/test/ws/e2e/artifacts/screenshots。然后 Jenkins 构建后操作发布“Junit 测试结果报告”。但在该报告中,我们有来自 Jenkins 代理服务器的屏幕截图的绝对路径。结果詹金斯大师在显示测试结果报告时无法找到屏幕截图。 以前我使用 Selenium 和 Maven 或 Gradle 来运行测试,并且有截图的相对路径。

【问题讨论】:

  • 目前,TestCafe 没有在报告中使用相对路径的选项。你的用例对我来说不清楚。你能详细描述一下你的场景吗?
  • 更新了我的问题

标签: testing automated-tests e2e-testing configuration-files testcafe


【解决方案1】:

目前,TestCafe 没有在报告中使用相对路径的选项。我在 TestCafe 存储库中为您的案例创建了一个建议 - https://github.com/DevExpress/testcafe/issues/3497。如果此功能对您很重要,那么您可以尝试自己实现它。 这并不难。您需要执行以下操作:添加一个新选项(参见示例 here)并根据此选项更改路径解析机制(参见示例 here)。

【讨论】:

  • 谢谢,它有帮助。但是我如何将我的实现贡献到 Testcafe 包中,因为它每次都使用yarn 命令和 package.json 在管道中安装?
  • 你可以创建一个github.com/DevExpress/testcafe的fork,在TestCafe的“package.json”中修改包名,然后发布你的版本到npm。或者,您可以将 package.json 中的 TestCafe 版本替换为使用“npm pack”构建的 TestCafe 分发存档的链接或路径。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-23
  • 1970-01-01
  • 2015-03-27
  • 2010-09-17
  • 1970-01-01
相关资源
最近更新 更多