将PHPUnit添加到现有的Cakephp 2.0
有人知道如何将PHPUnit添加到不是使用composer创建的现有CakePHP2.0项目中吗 我正在尝试将PHPUnit添加到一个现有的cakephp2.0项目中,该项目不是用composer创建的,我无法让CakePHP看到PHPUnit已安装。我使用的是一台Windows机器 以下是我迄今为止采取的步骤:将PHPUnit添加到现有的Cakephp 2.0,cakephp,phpunit,Cakephp,Phpunit,有人知道如何将PHPUnit添加到不是使用composer创建的现有CakePHP2.0项目中吗 我正在尝试将PHPUnit添加到一个现有的cakephp2.0项目中,该项目不是用composer创建的,我无法让CakePHP看到PHPUnit已安装。我使用的是一台Windows机器 以下是我迄今为止采取的步骤: 通过composer在全球范围内安装PHPUnit 3.7.32 将PHPUnit添加到我的路径 从命令行(即phpunit--version)验证安装 在PHP.ini中将位置添加到
提前感谢。如果您对此仍有疑问,以下是我所做的工作:
经过以上步骤,它应该可以工作。我终于能够将PHPUnit添加到一个现有的CakePHP项目中,该项目不是用composer创建的 我查看了CakeTestSuiteDispatcher.php文件,看看它试图在哪里找到PHPUnit。它在vendors、app/Vendor和include_路径中查找名为PHPUnit的文件夹,其中包含Autoload.php文件(感谢Nick Zinger在这方面的帮助)。一旦这个文件夹被复制,CakePHP将看到安装了PHPUnit,但在包含依赖项(代码覆盖率、计时器等)时会抛出错误。以下是我为使一切正常工作所采取的步骤
- php代码覆盖率
- php文件迭代器
- php文本模板
- php定时器
- php令牌流
- phpunit模拟对象
- PHPUnit/Autoload.php
- php代码覆盖率/php/CodeCoverage/Autoload.php
我希望这能帮助其他有同样问题的人。您需要在terminal中运行以下代码。(路径:在您的项目cakephp中)
我遵循以下步骤:
澄清“我无法让CakePHP看到安装了PHPUnit。”。您得到的确切错误是什么?从哪里得到的?test.php页面上说没有安装PHPUnit。通过cake testsuite命令运行测试时会出现一个错误,指出必须安装PHPUnit。你好,Nick,感谢您的回答。我已经试过了,但不幸的是它对我不起作用。我仍然看到消息“CakePHP测试套件2.0 PHPUnit未安装!”。以下是我采取的步骤:1)下载并解压缩phpunit文件夹2)将内部phpunit文件夹复制到我的文档文件夹3)将以下内容添加到我的php.ini include_路径“;C:\Users\Username\documents\phpunit”4)重新启动Apachue结构是什么样的?如果Autoload.php位于PHPUnit文件夹中,那么您的包含路径应该是:“;C:\Users\Username\Documents”。PHPUnit文件夹包含五个文件夹(Extensions、Framework、Runner、TextUI、Util)以及Autoload.php和Autoload.php.in。我将include\u路径修改为“;C:\Users\Username\Documents”,并重新启动了apache。我使用phpinfo()检查了include_路径设置,并且include_路径已更新,但仍然收到“PHPUnit未安装”消息。请尝试将PHPUnit文件夹复制到另一个标准include_路径中。可能是权限问题。我已将PHPUnit文件夹移动到ZendServer“ZendServer\share\ZendFramework\library\Zend”上的标准include_path文件夹中,但仍收到消息“PHPUnit未安装”。我是否需要向引导文件添加导入,或者以其他方式让CakePHP知道安装了PHPUnit?我用composer创建了一个新项目(CakePHP 2.6),它可以发现PHPUnit安装在include_路径上,我可以运行核心测试,那么composer是否向CakePHP配置添加了一些东西来添加PHPUnit?
composer require --dev phpunit/phpunit:"3.7.38"
public $test = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'user',
'password' => 'password',
'database' => 'test_database'
);
class MyClassTest extends PHPUnit_Framework_TestCase {
public function testCreateMyClass() {
// Tests are written here
}
}
?>