Testcafe - 如何在报告中设置相对而不是绝对屏幕截图路径

Testcafe - How to set relative instead of absolute screenshot path in reports

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

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

当规范和 xunit 报告中的测试失败时,屏幕截图显示 link,但 link 具有绝对路径。当我 运行 在本地测试时没关系。当 运行ning 在 Jenkins CI/CD 中时,由于使用 "workspace" 文件夹中的相对路径,发布 xunit 报告无法使用绝对路径找到屏幕截图。有什么方法可以配置 Testcafe 将相对路径放入 testRunInto.screenshotPath。我需要任何报告提供者的屏幕截图的相对路径。

更新: 我正在使用 Jenkins 代理服务器进行 运行 测试。本例中工作区的绝对路径:/home/jenkins/workspace/e2e。屏幕截图位于相对路径:artifacts/screenshots 或绝对路径 /home/jenkins/workspace/e2e/artifacts/screenshots。在 xunit 报告(或任何其他报告)中,我们获得了屏幕截图的绝对路径。当所有测试完成后,Jenkins Agent 将整个工作区推送到 Master Jenkins 服务器,工作区的绝对路径变为:/home/jenkins/job/test/ws/e2e 和屏幕截图的路径:/home/jenkins/job/test/ws/e2e/artifacts/screenshots。然后 Jenkins post-build action publish "Junit test result report"。但在该报告中,我们有来自 Jenkins Agent Server 的屏幕截图的绝对路径。导致Jenkins大师无法找到显示测试结果报告时的截图。 以前我用Selenium和Maven或者Gradle来运行测试,有截图的相对路径

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