Как настроить артефакты TestCafe в GitLab CI/CD?

#continuous-integration #testcafe #artifacts

Вопрос:

Я хотел бы знать, как правильно настроить TestCafe для сохранения артефактов, чтобы в случае сбоя в CI было легче устранить неполадки.

Наши тесты запускаются в CI/CD (внутри контейнера docker) каждый раз, когда разработчик переходит в свою ветвь функций. При локальном запуске тестов видео и скриншоты сохраняются в testcafe/artifacs/* соответственно в случае сбоя. Проверено, что если тестовый набор завершается неудачно, он показывает, как он сохранил снимок экрана, но в конце концов он его не сохраняет.

Скриншот:
/builds/projectX/projectX/testcafe/artifacts/screenshots/2021-05-10_10-58-43/test-15/Chrome_89.0.4389.90_Linux_0.0/errors/1.png

Фрагмент из файла .testcaferc.json:

     "screenshots": {
    "path": "artifacts/screenshots",
    "takeOnFails": true,
    "fullPage": true
  },
  "videoPath": "artifacts/videos",
  "videoOptions": {
    "failedOnly": true
  },
 

Из .gitlab-ci.yml:

   artifacts:
    paths:
      - testcafe/artifacts/
 

Комментарии:

1. Если вы запустите TestCafe внутри контейнера, артефакты будут сохранены внутри контейнера, поэтому, если вы хотите их увидеть, вам нужно извлечь их из контейнера.

2. На самом деле решил эту проблему, добавив простую строку в конфигурационный файл gitlab: артефакты: когда: пути on_failure: — testcafe/артефакты/ срок годности: 1 день