将PHPUnit添加到现有的Cakephp 2.0

将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添加到不是使用composer创建的现有CakePHP2.0项目中吗

我正在尝试将PHPUnit添加到一个现有的cakephp2.0项目中,该项目不是用composer创建的,我无法让CakePHP看到PHPUnit已安装。我使用的是一台Windows机器

以下是我迄今为止采取的步骤:

  • 通过composer在全球范围内安装PHPUnit 3.7.32
  • 将PHPUnit添加到我的路径
  • 从命令行(即phpunit--version)验证安装
  • 在PHP.ini中将位置添加到PHP include_路径
  • 重新启动服务器
  • 使用Composer安装了一个新的CakePHP项目(要测试CakePHP,可以查看PHPUnit)
  • 已成功测试安装了PHPUnit的新项目

  • 提前感谢。

    如果您对此仍有疑问,以下是我所做的工作:

  • 从下载源代码

  • 将内部PHPUnit文件夹(包含Autoload.php的文件夹)复制到包含php的路径中。确保包含路径,并且可以直接从该路径访问PHPUnit/Autoload.php

  • 重新启动apache


  • 经过以上步骤,它应该可以工作。

    我终于能够将PHPUnit添加到一个现有的CakePHP项目中,该项目不是用composer创建的

    我查看了CakeTestSuiteDispatcher.php文件,看看它试图在哪里找到PHPUnit。它在vendors、app/Vendor和include_路径中查找名为PHPUnit的文件夹,其中包含Autoload.php文件(感谢Nick Zinger在这方面的帮助)。一旦这个文件夹被复制,CakePHP将看到安装了PHPUnit,但在包含依赖项(代码覆盖率、计时器等)时会抛出错误。以下是我为使一切正常工作所采取的步骤

  • 确保在app/config/database.php中设置了测试数据库,否则主数据库可能会被覆盖或损坏
  • 通过Composer使用PHPUnit(我使用的是版本3.7.38)将一个新的CakePHP(版本2.6.2)项目安装到一个新位置
  • 将新项目中带有Autoload.php文件(PHPUnit/PHPUnit/PHPUnit)的内部PHPUnit文件夹复制到旧项目的cakephp供应商文件夹(应用程序外部的文件夹)
  • 将以下文件夹从phpunit文件夹(从步骤1中使用composer创建的项目)复制到您现有的供应商文件夹(应用程序外部的文件夹):
    • php代码覆盖率
    • php文件迭代器
    • php文本模板
    • php定时器
    • php令牌流
    • phpunit模拟对象
  • 在现有项目的以下文件中更新require_once路径(我使用的是绝对路径):
    • PHPUnit/Autoload.php
    • php代码覆盖率/php/CodeCoverage/Autoload.php
  • 一旦进行了这些更改,CakePHP测试套件就可用了,我就可以运行我的测试用例了。这适用于我的CakePHP项目(v2.0.6)和我的同事的CakePHP项目(v2.0.6)


    我希望这能帮助其他有同样问题的人。

    您需要在terminal中运行以下代码。(路径:在您的项目cakephp中)


    我遵循以下步骤:

  • 通过composer安装了PHPUnit[我在此目录中安装了PHPUnit~/CompanyName/Projects/Project/app]
  • curl-sS | php

    php composer.phar require--dev phpunit/phpunit:“3.7.38”--忽略平台需求

  • 记住在app/Config/core.php中将调试级别设置为1

  • 添加$test数据库配置:

  • 在这里创建了一个虚拟文件:app/Test/testMyClass.php
  • 运行测试文件:
  • ./vendor/bin/phpunit——引导供应商/autoload.php app/Test/testMyClass.php


    澄清“我无法让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
         }
    }
    ?>