Отчеты о тестировании в Docker
Работаю над организацией тестирования внутри Docker image.
Все работает, тесты запускаются внитри Docker image, на основе последнего кода. Вопрос встал по поводу генерирования тестировочных отчетов. Использую Allue. После окончания тестирования запускаю команду allure generate (находясь в папке где находится папка allure-results). Папка allure-report генерируется внутри контейнера. После этого я копирую эти папки себе на локальную машину, но при открытии файла index.html в allure-report, отчет пустой, видно только саму структуру отчета но содержимого нет. Написано "loading" и ничего не происходит. Проделываю весь процесс заново на локальной машине - все работает, отчет генерируется.
В данном случае нужен именно отчет через команду allure generate, а не allure serve, т к эта информация пойдет дальше менеджменту в рассылке. Возможно есть какое-то ограничение как в Docker image генерируется и записывается информация, но я пока понять это не могу, я новичок в этом.
Есть ли у кого идеи, мнения, решения как можно это разрешить?
Спасибо
Ответы (1 шт):
Возможно есть какое-то ограничение как в Docker image генерируется и записывается информация, но я пока понять это не могу, я новичок в этом.
Почитать про image / container / volume и понять различие.
Есть ли у кого идеи, мнения, решения как можно это разрешить?
Довольно легко решить с volume.
Запустить allure generate как CMD, подключенной volume:/path/allure-results. После выполнения отчеты лежат в volume, а контейнер удалится после завершения.
docker run -it --rm image -v allure-results:/path/allure-results allure generate
Запускаем снова с volume c вечной командой sh (etc).
ID=$(docker run -it --rm image -v allure-results:/path/allure-results sh)
Копируем нужные файлы на хост или отправляем.
docker cp $ID:/path/allure-results .
Пример: .gitlab-ci publish artifacts
script:
- docker-compose -f docker-compose.test.yml run --rm pages
- docker-compose -f docker-compose.test.yml up -d pages
- docker cp "${COMPOSE_PROJECT_NAME}_pages_1:/usr/src/app/public" public
- docker-compose down -v
artifacts:
paths:
- public