我正在尝试将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 .