Как грамотно поставить Newman + Allure reporter через nvm, чтобы не ловить EACCES и «could not find allure»?
По вводным: учусь автоматизировать API-тесты через Postman/Newman на macOS.
Ситуация такая:
По вводным: node установлен через nvm
Newman работает
Сейчас ситуация такая: при запуске с репортером получаю ошибку:
По вводным: newman: could not find "allure" reporter
По вводным: иногда ещё вылезают EACCES при установке глобальных пакетов
По вводным: подскажите, как правильно:
По вводным: 1. Поставить newman-reporter-allure (локально или глобально, и почему)
По вводным: 2. Запускать newman так, чтобы репортер стабильно находился
По вводным: 3. Настроить генерацию отчета Allure (какие команды после прогона)
По вводным: буду благодарен за рабочий пошаговый пример под macOS + nvm.
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
При 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
Путь должен быть внутри домашней директории nvm, а не
/usr/local. Если prefix смотрит в системную папку, сбросьте его:npm config delete prefix nvm use --ltsnpm config delete prefix nvm use --lts
Самый стабильный вариант — локальная установка в проект:
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 allure generate allure-results --clean -o allure-report npx allure open allure-report
Если хотите глобально, ставьте оба пакета глобально в одном nvm Node:
npm i -g newman newman-reporter-allure allure-commandlinenpm i -g newman newman-reporter-allure allure-commandline
Но локальный вариант лучше для команды и CI: версии фиксируются в
package-lock.json, не зависит от глобального окружения и не ловит EACCES.Итог: используйте nvm, не ставьте через sudo, держите
newmanиnewman-reporter-allureрядом. Для проекта рекомендую локальную установку и запуск черезnpx— так reporter стабильно находится и отчёт Allure воспроизводится на другой машине.