Ответ 1
Я столкнулся с тем же вопросом вчера после обновления PHPUnit. Поэтому я вернул обратно к PHPUnit 4.7.7, пока это не зафиксировано в NB.
Я пытаюсь запустить 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 выполнить тесты?
Я столкнулся с тем же вопросом вчера после обновления PHPUnit. Поэтому я вернул обратно к PHPUnit 4.7.7, пока это не зафиксировано в NB.
Я тоже столкнулся с этой ошибкой, в результате чего последняя версия 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
Ответ: Это действительно ошибка в NB и теперь исправлена в ночное время.
Возможные решения:
"- run" используется в NetBeansSuite.php для запуска тестов. Итак, вы должны отправить это в NetBeans bugzilla [1], если вы хотите этого избежать.
[1] https://netbeans.org/community/issues.html (PHP/PHPUnit)
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.