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

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

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

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

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

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

最佳答案

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

关于testing - Testcafe - 如何在报告中设置相对而不是绝对的屏幕截图路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54874056/

相关文章:

testing - 使用 TestCafe 时如何与 Windows 桌面交互

javascript - Testcafe:如何测试请求的POST参数

ruby-on-rails - rspec email_spec 和 jobs.. 它是如何工作的?我想检查这封信是否已发送..可能还有电子邮件正文

selenium - 属性错误: 'Context' object has no attribute 'browser'

Java/Junit : how to test if an external program/process/application is running?

build - gradle:在禁用某些测试的情况下聚合多项目testReport

testing - 如何使用 WebDriverIO 获取可见元素

iphone - 当可以使用开发配置文件进行分发时,为什么需要临时分发配置文件?

angularjs - 如何创建一个 npm 脚本来运行多个命令来运行一些测试?

ruby - 减少 RSpec 中 JSON 测试输入的重复