我正在使用规格和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来运行测试,并且有相对的屏幕快照路径。
答案 0 :(得分:2)
目前,TestCafe尚无选择使用报表中的相对路径。我已经在您的案例的TestCafe存储库中创建了一个建议-https://github.com/DevExpress/testcafe/issues/3497。如果此功能对您很重要,那么您可以尝试自己实现。 这并不困难。您需要执行以下操作:添加一个新选项(请参见示例here)并根据该选项更改路径解析机制(请参见示例here)。