Как исправить "непризнанный параметр --run" на NetBeans, на котором запущен PHPUnit

Я пытаюсь запустить PHPUnit в NetBeans 8.0.2.

Если я запустил # phpunit в тестах моей папки, все тесты выполняются. Поэтому, похоже, это правильно.

Но на выходе NetBeans я всегда получал:

"C:\nginx\php\5.6.12\php.exe" "C:\nginx\php\5.6.12\phpunit.phar" "--colors" "--log-junit" "C:\Users\...\AppData\Local\Temp\nb-phpunit-log.xml" "--bootstrap" "E:\var\www\...\tests\TestHelper.php" "--configuration" "E:\var\www\...\tests\phpunit.xml" "C:\Program Files\NetBeans 8.0.2\php\phpunit\NetBeansSuite.php" "--run=E:\var\www\...\tests\app\utils\FormatUtilTest.php"

PHPUnit 4.8.2 Себастьяна Бергмана и авторов.

непризнанная опция --run

Готово.

Возможно, это сообщение "-run" это правильно, потому что эта команда не существует в руководстве PHPUnit. Но если это так, то как создать еще один script для NetBeans выполнить тесты?

Ответ 1

Я столкнулся с тем же вопросом вчера после обновления PHPUnit. Поэтому я вернул обратно к PHPUnit 4.7.7, пока это не зафиксировано в NB.

Ответ 2

Я тоже столкнулся с этой ошибкой, в результате чего последняя версия PHPUnit не будет работать с NetBeans v8.0.2.

Дальнейшее исследование этой проблемы привело к определению того, что существует несовместимость между NetBeansSuite.php и последней версией PHPUnit.

Ошибка "непризнанная опция -run" генерируется phpunit.phar и не вызывается NetBeansSuite.php. Я также не считаю, что NetBeansSuite.php даже выполняется.

phpunit.phar, строка 63816 или 63894 - это то место, где выдается исключение.

Пока это не будет исправлено, PHPUnit не будет работать с NetBeans v8.0.2.

@Pablo: Благодарю вас за открытие проблемы и прокомментировали вашу проблему.

PHPUnit v4.7.7 работает правильно.

Открыл отчет об ошибке: https://netbeans.org/bugzilla/show_bug.cgi?id=254276

Ответ 4

"- run" используется в NetBeansSuite.php для запуска тестов. Итак, вы должны отправить это в NetBeans bugzilla [1], если вы хотите этого избежать.

[1] https://netbeans.org/community/issues.html (PHP/PHPUnit)

Ответ 5

2019 и проблема все еще существует. Понижение версии PHPUnit больше не вариант сегодня. Поэтому в качестве обходного пути я создал скрипт-обертку для phpunit, который заботится об удалении неверных параметров.

Он также полностью удаляет файл NetBeansSuite.php, потому что он делает то же самое, что и вызов сценария phpunit.

Моя установка - Windows Netbeans, Windows PHP 7.3 и оболочка Cygwin (потому что это bash-код). Если кому-то захочется перенести это на родные окна, оставьте комментарий здесь.

#!/usr/bin/env sh
# modified phpunit script originally from vendors dir
# 1. cygwin default search path is bad in my installation...
PATH="$PATH:/bin:/usr/bin"
# original code, only adjust the ../../ to match your installation.
# the directory this is run in is where the wrapper script resides
dir=$(cd "${0%[/\\]*}" > /dev/null; cd "../../vendor/phpunit/phpunit" && pwd)
if [ -d /proc/cygdrive ] && [[ $(which php) == $(readlink -n /proc/cygdrive)/* ]]; then
   # We are in Cgywin using Windows php, so the path must be translated
   dir=$(cygpath -m "$dir");
fi
# fix netbeans parameters
while [ $# -gt 0 ]; do
  case "$1" in
    *NetBeansSuite.php) shift;;
    --run=*) PARAMS="$PARAMS ${1#--run=}"; shift;;
    --) shift ;;
    *) PARAMS="$PARAMS $1"; shift;;
  esac
done

"${dir}/phpunit" $PARAMS

Вы должны настроить оба вхождения "../"s" на структуру вашей папки.

Это решение работает с ALT-F6 (запустить все тесты), щелкнув правой кнопкой мыши папку с тестами "Выполнить тесты", а также щелкнув правой кнопкой мыши по отдельным файлам тестов "Выполнить".

Настройка для "Netbeans: Инструменты/Параметры/Каркасы и Инструменты /PHPUnit" тогда:

C:\cygwin\bin\bash.exe /cygdrive/c/workspace/Project/src/cli/phpunit

Скорректируйте эти пути в соответствии с вашими потребностями. HTH, M.