之前的操作像往常使用Pear组件一样,把源代码下载到本地后解压至Pear目录,修改文件名为PHPUnit2;然后写了一个最简单的ArrayTest,IE显示一片空白。。。
查手册,倒!居然是Command-line环境下运行的,连phpunit命令都没有,还怎么跑?!继续看安装说明。
在Windows环境下安装PHPUnit2,cmd命令进入命令行环境后执行2条命令:
pear channel-discover pear.phpunit.de
pear install phpunit/PHPUnit
提示安装失败
Did not download optional dependencies: pear/Image_GraphViz, pear/Log, pear/Test
ing_Selenium, use --alldeps to download automatically
phpunit/PHPUnit requires PHP (version >= 5.1.4), installed version is 5.1.1
phpunit/PHPUnit requires PHP extension "reflection"
phpunit/PHPUnit can optionally use package "pear/Image_GraphViz" (version >= 1.2
.1)
phpunit/PHPUnit can optionally use package "pear/Log"
phpunit/PHPUnit can optionally use package "pear/Testing_Selenium" (version >= 0
.2.0)
phpunit/PHPUnit can optionally use PHP extension "json"
phpunit/PHPUnit can optionally use PHP extension "xdebug" (version >= 2.0.0RC1)
No valid packages found
install failed
在安装PHPUnit2之前还必须升级必要的Pear组件,还要把PHP版本从5.1.1升级到5.1.4
这个可犯难了,为了测试一个PHPUnit2居然还要做这么大的调整,万一升级失败影响到原先的程序岂不是罪过大了。
思考了一下,估计是因为下载安装的PHPUnit2版本太高所致,所以想下一份低版本的的PHPUnit2。
pear install http://pear.phpunit.de/get/PHPUnit-2.3.6.tgz
这次一下提示安装成功了,在PHP安装目录下可以看到phpunit.bat文件了。
再跑ArrayTest,提示
'php' 不是内部或外部命令,也不是可运
或批处理文件。
PHPUnit 2.3.6 by Sebastian Bergmann.
Syntax error in ArrayTest.php.
还是不能出正确的运行结果,Baidu在关键时刻发挥作用了。
我转载一段来自网上的解决方案:
在windows下安装完成后还不能直接进行测试,运行测试程序时会出现 'php'不是内部或外部命令,也不是可运行的程序。的错误,经我一路跟踪,最后在PHPUnit2/Util/Fileloader.php这个文件里找到了问题所在,这个文件是载入测试文件用的,同时使用php解释器进行了语法检查,shell_exec('php -l ' . escapeshellarg($filename));,而我的php.exe并没有在系统的path中,所以出现了上述问题,一种办法是将$output到include之前的代码全部注释掉,这样就不用语法检查了,还有一种办法就是在系统path中加入php的安装目录。
好,一切都修改完毕后。
phpunit ArrayTest
PHPUnit 2.3.6 by Sebastian Bergmann.
..
Time: 0.009333
OK (2 tests)
结果终于出现了。
另附一些参考资料:
最权威的莫过于PHPUnit2的官方文档,O'Reilly已经出版。
http://www.phpunit.de/pocket_guide/2.3/en/index.html
PHPUnit
之前有听说过PHPUnit,一直没有机会尝试,先存两篇文档;有空再试一下///
头一次使用这种东西,开始有些手忙脚乱,弄了二天了,终于有点眉目了,记录一下过程。
以下都是在windows下进行,我的php版本是php-5.1.4-win32
因为phpunit要通过pear安装,所以首先要安装pear
找到php的目录下有一个go-pear.bat,双击运行,提示你安装系统级别的还是一个本地拷贝,直接回车,定制安装目录,选择默认即可,直接回车。程序会自动从网站上下载所需要的文件,过一会就提示你安装好了。
安装好pear后,在php的目录下发现有一个pear.bat,这个是pear安装包用的程序,
在命令行进行php目录,输入 pear install phpunit2
即可,安装完成。
在php目录下会生成一个phpunit.bat,这个是命令行下的测试命令。
我们可以把他复制到我们要测试程序的目录下面。
在命令行下输入 phpunit sampleTest
就是对sampleTest这个case进行测试了。
有二点需要注意的地方:
- phpunit需要pear的benchmark包,所以要安装 pear install benchmark即可。
- 在windows下安装完成后还不能直接进行测试,运行测试程序时会出现 'php'不是内部或外部命令,也不是可运行的程序。的错误,经我一路跟踪,最后在PHPUnit2/Util/Fileloader.php这个文件里找到了问题所在,这个文件是载入测试文件用的,同时使用php解释器进行了语法检查,shell_exec('php -l ' . escapeshellarg($filename));,而我的php.exe并没有在系统的path中,所以出现了上述问题,一种办法是将$output到include之前的代码全部注释掉,这样就不用语法检查了,还有一种办法就是在系统path中加入php的安装目录
HTMLRunner for PHPUnit2
phpunit2目前只有命令行模式,在网上搜索到了HTMLRunner这个东西,
算是phpunit2的一个插件吧,可以让test以html的形式显示结果,比命令行下好看多了,
这里是下载地址
http://www.defusion.org.uk/code/phpunit2-html-runner/。
安装及使用方法:
下载后将文件解压到你的web目录,比如"HTMLRunner",访问时就通过
http://localhost/HTMLRunner/。你会看到有一个输入框,如图
case和suite可以在这里输入,一行一个测试,不需要php后缀,例如
../pliteTest
util/HistoryTest
如果输入的测试程序有语法错误,结果是一片空白,什么也不显示,否则显示下面的图
是不是比命令行下的好看多了?
当测试程序显示有错误的时候。页面下方还会有更详细的扩展信息
关于这个插件的详细信息参见上面的网址。
No comments:
Post a Comment