如何修复运行 PHPUnit 的 NetBeans 上的"unrecognized option --run"



我正在尝试将PHPUnit运行到NetBeans 8.0.2.

如果我运行# phpunit在我的文件夹测试所有的测试运行。所以它似乎是正确的。

但是在NetBeans输出中,我总是得到:

"C:nginxphp5.6.12php.exe" "C:nginxphp5.6.12phpunit.phar" "--colors" "--log-junit" "C:Users...AppDataLocalTempnb-phpunit-log.xml" "--bootstrap" "E:varwww...testsTestHelper.php" "--configuration" "E:varwww...testsphpunit.xml" "C:Program FilesNetBeans 8.0.2phpphpunitNetBeansSuite.php" "--run=E:varwww...testsapputilsFormatUtilTest.php"

PHPUnit 4.8.2 by Sebastian Bergmann and contributor .

无法识别的选项——run

也许"——run消息"是对的,因为这个命令在PHPUnit手册中不存在。但是如果是这样的话,如何为NetBeans创建另一个脚本来执行测试呢?

我昨天在PHPUnit更新后遇到了同样的问题。所以我现在回到PHPUnit 4.7.7,直到这是固定在NB。

我也遇到了这个错误,导致最新版本的PHPUnit不能与NetBeans v8.0.2一起工作。

进一步调查此问题导致确定NetBeansSuite.php与最新版本的PHPUnit之间存在不兼容。

phpunit抛出'unrecognized option——run'错误。而不是由NetBeansSuite.php抛出。我也不相信NetBeansSuite.php正在被执行。

phpunit)。第63816行 63894行是抛出异常的地方。

在此修复之前,PHPUnit将无法在NetBeans v8.0.2中工作。

@Pablo:我感谢你打开一个问题,并评论了你的问题。

PHPUnit v4.7.7工作正常

打开bug报告:https://netbeans.org/bugzilla/show_bug.cgi?id=254276

答案是:这确实是NB的一个bug,现在已经在夜间修复了。

可能的解决方案:

  • 从http://bits.netbeans.org/dev/nightly/升级到最新版本
  • 使用Luuk提到的PHPUnit 4.7.7

"——run"选项在NetBeansSuite.php中用于运行测试。所以,如果你想避免这种情况,你应该把它提交给NetBeans bugzilla[1]。

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

2019,问题依然存在。降级PHPUnit现在已经没有选择了。因此,我为phpunit创建了一个包装器脚本,它负责删除坏参数。

它还完全删除了NetBeansSuite.php文件,因为它做了与直接调用phpunit脚本相同的事情。

我的设置是Windows Netbeans 11, 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: Tools/Options/Frameworks &

C:cygwinbinbash.exe /cygdrive/c/workspace/Project/src/cli/phpunit

再次根据需要调整这些路径名。

HTH,

m .

相关内容

  • 没有找到相关文章

最新更新