Как грамотно поставить Newman + Allure reporter через nvm, чтобы не ловить EACCES и «could not find allure»?

Ссылка скопирована
1 ответ

По вводным: учусь автоматизировать API-тесты через Postman/Newman на macOS.

Ситуация такая:

По вводным: node установлен через nvm

Newman работает

Сейчас ситуация такая: при запуске с репортером получаю ошибку:
По вводным: newman: could not find "allure" reporter

По вводным: иногда ещё вылезают EACCES при установке глобальных пакетов

По вводным: подскажите, как правильно:

По вводным: 1. Поставить newman-reporter-allure (локально или глобально, и почему)

По вводным: 2. Запускать newman так, чтобы репортер стабильно находился

По вводным: 3. Настроить генерацию отчета Allure (какие команды после прогона)

По вводным: буду благодарен за рабочий пошаговый пример под macOS + nvm.

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Роман IT Ответ

При macOS + nvm лучше ставить Newman и reporter в один и тот же контекст Node. Ошибка newman: could not find "allure" reporter почти всегда означает, что newman запущен из одного места, а newman-reporter-allure установлен в другом. EACCES возникает, когда npm пытается писать в системные директории, а не в nvm-папку пользователя.

Сначала убедитесь, что активен nvm Node:

which node
which npm
which newman
npm config get prefix

which node which npm which newman npm config get prefix

Путь должен быть внутри домашней директории nvm, а не /usr/local. Если prefix смотрит в системную папку, сбросьте его:

npm config delete prefix
nvm use --lts

npm config delete prefix nvm use --lts

Самый стабильный вариант — локальная установка в проект:

mkdir api-tests
cd api-tests
npm init -y
npm i -D newman newman-reporter-allure allure-commandline

mkdir api-tests cd api-tests npm init -y npm i -D newman newman-reporter-allure allure-commandline

Запуск:

npx newman run collection.json   -e environment.json   -r cli,allure   --reporter-allure-export allure-results

npx newman run collection.json -e environment.json -r cli,allure --reporter-allure-export allure-results

Генерация отчёта:

npx allure generate allure-results --clean -o allure-report
npx allure open allure-report

npx allure generate allure-results --clean -o allure-report npx allure open allure-report

Если хотите глобально, ставьте оба пакета глобально в одном nvm Node:

npm i -g newman newman-reporter-allure allure-commandline

npm i -g newman newman-reporter-allure allure-commandline

Но локальный вариант лучше для команды и CI: версии фиксируются в package-lock.json, не зависит от глобального окружения и не ловит EACCES.

Итог: используйте nvm, не ставьте через sudo, держите newman и newman-reporter-allure рядом. Для проекта рекомендую локальную установку и запуск через npx — так reporter стабильно находится и отчёт Allure воспроизводится на другой машине.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно