Я использую спецификации и отчеты xunit.Мой .testcaferc.json:
{
"screenshotPath": "artifacts/screenshots",
"takeScreenshotsOnFails": true,
"screenshotPathPattern": "${DATE}_${TIME}/${USERAGENT}/test-${TEST_INDEX}.png"
}
Когда в спецификации и в отчетах xunit тест не пройден, отображается ссылка на скриншот, но эта ссылка имеет абсолютный путь.Это нормально, когда я запускаю тесты локально.При запуске в Jenkins CI / CD отчет об опубликованном xunit не может найти снимок экрана с использованием абсолютного пути из-за использования относительного пути из папки «workspace».Есть ли способ настроить Testcafe, чтобы поместить относительный путь в testRunInto.screenshotPath.Мне нужен относительный путь к скриншотам для любых поставщиков отчетов.
Upd: Я использую сервер агента Jenkins для запуска теста.Абсолютный путь к рабочему пространству в этом случае: /home/jenkins/workspace/e2e
.Снимки экрана расположены по относительному пути: artifacts/screenshots
или по абсолютному пути /home/jenkins/workspace/e2e/artifacts/screenshots
.В отчете xunit (или любом другом) мы получили абсолютный путь для скриншотов.Когда все тестирование завершилось, агент Jenkins отправил всю рабочую область на сервер Master Jenkins, и абсолютный путь к рабочей области стал: /home/jenkins/job/test/ws/e2e
и путь к скриншотам: /home/jenkins/job/test/ws/e2e/artifacts/screenshots
.Затем Jenkins после сборки публикует «Отчет о результатах теста Junit».Но внутри этого отчета у нас есть абсолютный путь к скриншоту, полученный от Jenkins Agent Server.В результате мастер Дженкинс не может найти скриншот, когда показывает отчет о результатах теста.Ранее я использовал Selenium и Maven или Gradle для запуска теста, и к скриншотам относительный путь относительный.