PHPUnit:无法打开所需的`PHPUnit_Extensions_Story_TestCase.php`

 手机用户282914901 发布于 2023-02-08 11:33

我安装PHPUnit了:

wget https://phar.phpunit.de/phpunit.phar
chmod +x phpunit.phar
mv phpunit.phar /usr/local/bin/phpunit

尝试运行一个简单的测试,但得到:

Fatal error: require_once(): Failed opening required 'PHPUnit_Extensions_Story_TestCase.php'

我该如何安装PHPUnit_Extensions_Story_TestCase

测试很简单:

class TestFunctions extends PHPUnit_Framework_TestCase {
    public function test_str() {
        $this->assertEquals('foo', 'bar');
    }
}

PeqNP.. 5

不幸的是,没有一个建议的修复程序对我有效.典型的响应是安装phpunit/PHPUnit_Story模块.虽然这会让你朝着正确的方向前进,但它并没有解决我的问题.

我在boostrap.php文件中注册了自动加载功能.这很可能取代了由PHPUnit注册的自动加载功能,用于自动加载PHPUnit的类.我评论了我的自动加载功能实现,问题就消失了.

编辑

回应@ user3265472; 我已经有一段时间了,但是我想说"修复"是在bootstrap.php文件的开头设置包含路径,然后像往常一样手动加载类:

/**
 * Configure include paths used by the unit tests.
 *
 * @return void
 */
function configure_include_paths()
{
    set_include_path(get_include_path() . PATH_SEPARATOR . dirname(__FILE__) . "/mylib");
    set_include_path(get_include_path() . PATH_SEPARATOR . dirname(__FILE__) . "/mylib2");
    set_include_path(get_include_path() . PATH_SEPARATOR . dirname(dirname(__FILE__)) . "/lib");
}

configure_include_paths();

这允许我在每个文件的开头执行以下操作:

require_once("MyClass.php");

而不必确定类与当前类文件的关系.

我还想说,无论我做了什么,我都无法按照我的喜好来上课自动加载.我希望这有帮助.

1 个回答
  • 不幸的是,没有一个建议的修复程序对我有效.典型的响应是安装phpunit/PHPUnit_Story模块.虽然这会让你朝着正确的方向前进,但它并没有解决我的问题.

    我在boostrap.php文件中注册了自动加载功能.这很可能取代了由PHPUnit注册的自动加载功能,用于自动加载PHPUnit的类.我评论了我的自动加载功能实现,问题就消失了.

    编辑

    回应@ user3265472; 我已经有一段时间了,但是我想说"修复"是在bootstrap.php文件的开头设置包含路径,然后像往常一样手动加载类:

    /**
     * Configure include paths used by the unit tests.
     *
     * @return void
     */
    function configure_include_paths()
    {
        set_include_path(get_include_path() . PATH_SEPARATOR . dirname(__FILE__) . "/mylib");
        set_include_path(get_include_path() . PATH_SEPARATOR . dirname(__FILE__) . "/mylib2");
        set_include_path(get_include_path() . PATH_SEPARATOR . dirname(dirname(__FILE__)) . "/lib");
    }
    
    configure_include_paths();
    

    这允许我在每个文件的开头执行以下操作:

    require_once("MyClass.php");
    

    而不必确定类与当前类文件的关系.

    我还想说,无论我做了什么,我都无法按照我的喜好来上课自动加载.我希望这有帮助.

    2023-02-08 11:34 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有