让 PHPUnit 工作 - 包含路径未正确设置?

2022-08-30 19:41:59

我试图让PHPUnit在我的开发环境中工作,但是当涉及到在我的脚本中包含PHPUnit时,我遇到了一些障碍。我知道我需要在PHP上设置包含路径,但是我尝试过的每个组合都失败了,编译器没有看到PHPUnit_Framework_TestCase类。

我刚刚在PHP和PEAR上运行了更新,PHPUnit安装在计算机上,因为我可以通过命令行访问它。

PHPUnit 安装在 /usr/share/php/PHPunit

Pear 位于 /usr/share/php/PEAR

我错过了什么吗?这是我第一次尝试使用PHPUnit甚至PEAR的东西。我在Ubuntu 10.10上。任何帮助将不胜感激。

编辑 - 在我的 PHP ini 中,包含路径中没有任何内容。现在代码只是

<?php
class Stacktest extends PHPUnit_Framework_TestCase
{

}

我不知道要包含什么或在包含路径中设置什么,因为似乎对于网络上有关PHPUnit的所有信息,这一点点信息都严重缺失。


答案 1

从 PHPUnit 3.5 开始,您必须自己包含自动加载器:

require 'PHPUnit/Autoload.php'; // PEAR should be in your include_path

答案 2

如果您正确安装了phpunit(通过PEAR),则不需要包含文件;你只需要改变你使用它来测试php文件的方式(例如,你用它来测试文件是否正常工作,方法是转到浏览器类型localhost)。使用phpunit,您可以使用命令行;第5章给出了使用命令行的相同示例(我假设它是一个标准)。因此,如果您正确安装了它,则可以执行以下操作:

  1. File ExampleTest.php,位于localhost的根目录下(对我来说,这是/var/www):

    class ExampleTest extends PHPUnit_Framework_TestCase
    {
        public function testOne()
        {
            $this->assertTrue(FALSE);
        }
    }
    
  2. 打开控制台(Mac 或 Linux 上的终端,Win 上的命令提示符),导航到本地主机文档根目录(保存 ExampleTest .php 的位置),然后键入以下内容:

    phpunit --verbose ExampleTest.php
    
  3. 您应该看到:

    PHPUnit 3.4.13 by Sebastian Bergmann.
    
    F
    
    Time: 1 second, Memory: 6.50Mb
    
    There was 1 failure:
    
    1) ExampleTest::testOne
    Failed asserting that <boolean:false> is true.
    
    /var/www/ExampleTest.php:6
    
    FAILURES!
    Tests: 1, Assertions: 1, Failures: 1.
    

注意:以上所有内容都假定您正确安装了phpunit(如第3章所述),并且在此之后重新启动了apache。

如果您确实想在浏览器中运行测试,请使用以下代码

# error reporting
ini_set('display_errors',1);
error_reporting(E_ALL|E_STRICT);

# include TestRunner
require_once 'PHPUnit/TextUI/TestRunner.php';

# our test class
class ExampleTest extends PHPUnit_Framework_TestCase
{
    public function testOne()
    {
        $this->assertTrue(FALSE);
    }
}

# run the test
$suite = new PHPUnit_Framework_TestSuite('ExampleTest');
PHPUnit_TextUI_TestRunner::run($suite);

编辑

刚刚在你的问题中发现了Ubuntu 10.10。对于 Ubuntu 安装,我建议这样做:在终端中做:

sudo pear uninstall phpunit/PHPUnit
sudo apt-get install phpunit
sudo /etc/init.d/apache2 restart

注意:如果您没有通过pear安装phpunit,请不要发出第一行。最后一行似乎是必需的(至少在我的情况下)。

sudo /etc/init.d/apache2 reload # Or
sudo service apache2 restart

推荐