Testcafe-如何在报告中设置相对而非绝对的屏幕快照路径

时间:2019-02-25 20:21:41

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

我正在使用规格和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将整个工作空间推送到Master Jenkins服务器,并且工作空间的绝对路径变为:/home/jenkins/job/test/ws/e2e,并且屏幕截图的路径为:/home/jenkins/job/test/ws/e2e/artifacts/screenshots。然后,詹金斯(Jenkins)建立后行动发布了“ Junit测试结果报告”。但是在该报告中,我们有截屏的绝对路径来自Jenkins Agent Server。结果,詹金斯大师在显示测试结果报告时无法找到屏幕截图。 以前,我曾经使用Selenium和Maven或Gradle来运行测试,并且有相对的屏幕快照路径。

1 个答案:

答案 0 :(得分:2)

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