为什么 phpUnit 测试不起作用? ZF2
Why phpUnit test does not work? ZF2
我正在阅读 Slavey Karadzhov 的书 "Learn ZF2: Learning By Example"。现在我在第 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 "[=12=]"`"
cd "../phpunit/phpunit/composer/bin"
BIN_TARGET="`pwd`/phpunit"
cd "$SRC_DIR"
"$BIN_TARGET" "$@"
更准确地说,第一行 (#!/usr/bin/env sh) 没有出现在输出中。其余的确实出现了。
**
我运行正在 Windows 8.1 Pro OS 上使用 Git Bash(git 版本 1.9。4.msysgit.1). 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(或类似的东西)会更好。
书中使用的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、@steeler 和@malte,他们的activity(post,评论)让我走上了正轨。我说的post在这里:
我正在阅读 Slavey Karadzhov 的书 "Learn ZF2: Learning By Example"。现在我在第 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 "[=12=]"`"
cd "../phpunit/phpunit/composer/bin"
BIN_TARGET="`pwd`/phpunit"
cd "$SRC_DIR"
"$BIN_TARGET" "$@"
更准确地说,第一行 (#!/usr/bin/env sh) 没有出现在输出中。其余的确实出现了。
**
我运行正在 Windows 8.1 Pro OS 上使用 Git Bash(git 版本 1.9。4.msysgit.1). 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(或类似的东西)会更好。
书中使用的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、@steeler 和@malte,他们的activity(post,评论)让我走上了正轨。我说的post在这里: