为什么phpUnit测试不起作用? ZF2

时间:2015-01-17 12:16:13

标签: php bash zend-framework zend-framework2 phpunit

我正在读这本书"学习ZF2:通过实例学习"作者:Slavey Karadzhov。现在我在第103-107页。我正在尝试按照描述运行PHPUnit测试,但没有任何反应...... 问题出在哪里以及如何解决?

进入相同的情况你需要:

git clone https://github.com/slaff/learnzf2.git .

composer.phar self-update
composer.phar install

git stash
git checkout 'ch-unittest'

这应该为您带来与我相同的文件(=在书中)。

现在,我尝试运行此命令:

ZF2_PATH=`pwd`/vendor/zendframework/zendframework/library \php vendor/bin/phpunit -c module/User/tests/

命令无法正常工作...... 我希望有一些测试结果输出左右,但我得到的是输出与我在vendor/bin/phpunit文件中的内容类似。它是:

#!/usr/bin/env sh
SRC_DIR="`pwd`"
cd "`dirname "$0"`"
cd "../phpunit/phpunit/composer/bin"
BIN_TARGET="`pwd`/phpunit"
cd "$SRC_DIR"
"$BIN_TARGET" "$@"

更准确地说,第一行(#!/ usr / bin / env sh)没有显示在输出中。其余的确出现了。

**

我正在使用Git Bash(git版本1.9.4.msysgit.1)在Windows 8.1 Pro OS上运行代码。 php关键字似乎运作良好,因为编写php -v按预期工作(输出PHP 5.5.12 (cli) (built: Apr 30 2014 11:20:58) ...

我自己的猜测是,Git bash无法解析它在vendor / bin / phpunit中找到的代码,所以它在那里失败......但这只是猜测......

编辑#1: 刚尝试使用LAMP设置共享主机。一切都很顺利。似乎Zend Framework 2和Windows在某些方面并不那么友好(例如在刚刚提到的单元测试案例中)。看起来非常好的书(没有讽刺,它真的是好的)如果它会有更多关于VirtualBox + Vagrant + PuPHPet(或接近它的东西)的章节会更好。

1 个答案:

答案 0 :(得分:0)

本书中使用的composer.json文件行:phpunit/phpunit" : "3.7.*

我已将phpunit/phpunit" : "3.7.*更改为phpunit/phpunit" : "4.5.*,因为4.5版本的PHPUnit是当前的稳定版。 然后,当然:php composer.phar update 然后这个将很好地工作:

ZF2_PATH=`pwd`/vendor/zendframework/zendframework/library \php vendor/phpunit/phpunit/phpunit -c module/User/tests/

上面的命令与书中的命令不同。

在Windows 8.1,Ubuntu Trusty 14.04 LTS x64上测试,隔离开发环境提供here。效果很好。

还有一种方法可以使PHPUnit 3.7。*适用于所有系统(我测试的系统相同),但命令必须更改为:

ZF2_PATH=`pwd`/vendor/zendframework/zendframework/library \php vendor/phpunit/phpunit/composer/bin/phpunit -c module/User/tests/

上面的命令与书中的命令不同。

所以......在这里,我们提到了两种方法可以使用PHPUnit测试来使它们工作。由我们决定两个女巫更好。我希望目前增加PHPUnit版本的版本为4.5。

非常感谢Slavey Karadzhov--本书的作者,他使用Zend Framework 2(ZF2)为编程提供了独立的开发环境。
另外,感谢@jamaldo,@ ssreeler和@malte,他们的活动(帖子,评论)让我走上正轨。我正在谈论的帖子在这里:https://stackoverflow.com/questions/23881289/php-vendor-bin-phpunit-is-printing-in-console-a-text