我想在运行OSX 10.8.4和带有PHP 5.4.1的MAMP Pro的本地maschine上使用phpunit测试。此外,我想将它用于Yii和我的IDE Netbeans。
我通过pear或composer阅读了一些类似这种方法的教程。我甚至试着让自己看起来像是在窗户上做的,但没有成功。
我的方法总是导致像这样的错误
PHP警告:include():无法打开"PHPInvoker.PHP"
PHP警告:include():打开失败'PHPUnit_Extensions_Database_TestCase.php'
PHP警告:include():打开失败'PHPUnit_Extension_Story_TestCase.php'
无法打开所需的"PHPUnit/Extensions/SeleniumTestCase.php"
PHP致命错误:找不到类"CTestCase"
或者根本找不到phpunit。
但最终我找到了一个给我一个良好开端的教程。通过更多的研究,我也找到了解决上述问题的方法。
在这里,我只想分享我的步骤和所有你可以通过的链接来运行它:)
第一步是学习Zank的教程。
但在我完成他的步骤后,我犯了几个错误。因为您必须安装的模块列表不完整。当我尝试运行测试时,这导致了以下错误:
PHP警告:include():无法打开"PHPInvoker.PHP"
PHP警告:include():打开失败'PHPUnit_Extensions_Database_TestCase.php'
PHP警告:include():打开失败'PHPUnit_Extension_Story_TestCase.php'
第二步
所以我在谷歌上搜索了一下,发现我也必须做以下几行:
pear install phpunit/PHPUnit_Story
pear install phpunit/DbUnit
但"调用者"问题并没有那么容易。因为当你尝试时
pear install phpunit/PHP_Invoker
它将导致类似的错误
phpunit/PHPInvoker需要PHP扩展名"pcntl"
将这个扩展安装到MAMP是一件痛苦的事。但我在这里找到了这个解决方案:
- 转到pear.phpunit.de
- 手动下载的PHPInvoker实用程序类
- 解压缩了我女儿mac上的文件(我运行的是Windows)
- 将"Invoker"目录放在C:\examplep\php\pear\php下
- 将"Invoker.php"文件放在C:\examplep\php\pear\php下
对于您的MAMP安装,路径应该类似于"/Applications/MAMP/bin/php/php5.4.10/lib"-此外,我还必须将"Invoker.php"重命名为"PHPInvokerphp"。
第三步
在命令行上,一切现在都应该工作了——编写一个测试并尝试,就像第一步中链接的Zank教程中一样。但是Netbeans呢?就像在Zank的教程中一样,我输入了phpunit路径,然后右键单击了我的一个测试并选择了"运行测试"-error!
PHP致命错误:找不到类"CTestCase"
解决方案可以在这里找到。当您没有右键单击"phpunit.xml"所在的文件夹时,就会发生这种情况。但为了避免这种情况,您可以执行以下操作:
- 只需右键单击包含"phpunit.xml"的文件夹,即可显示"Run test"
- 或者在测试属性->PHPUnit下,选中复选框"使用XML配置"并选择"PHPUnit.XML"文件
就是这样!
这里有一些链接也很有趣:
- NetBeans IDE-使用PHPUnit和Selenium进行测试
- NetBeans IDE和Yii项目
- NetBeans IDE、PHPUnit和Skeleton Generator