不使用Composer使用PHPUnit

3
我正在尝试在旧系统上安装PHPunit,遇到了几个phar问题,
目前我已经成功运行了PHPunit,并使我的自动加载程序正常工作,还有pPHPunit,但现在,它正在尝试调用composer。
我不得不添加一个扩展名“PHPUnit/Extensions/Story”,它也正常工作,但现在,我必须管理composer...
我试图添加phar,提取phar,但似乎什么都不起作用(如果“Composer\Autoload\ClassLoader.php”可以工作,则会出现“Instantiator\Instantiator.php”丢失...)
因此,是否可能在没有composer的情况下运行PHPunit?

你使用的命令是什么来运行你的测试? - STLMikey
嗨,我使用命令行带有--bootstrap选项,我刚刚解决了我的问题并发布了回复。 - Bruno
2个回答

0

可以简单地使用Composer来处理PHPunit及其依赖项。

因此,最简单的方法是直接使用Composer。仅使用Composer处理您的一小部分依赖关系并没有任何问题。实际上,对于某些(小型)项目,我甚至不使用它来处理任何依赖项(仅用于处理自动加载)。

您可以在子目录测试中使用它,或更常规地在项目的根目录中使用它。


抱歉如果我只是回答了一个更年轻的自己,但是我之前的回答在很多方面都是错误的... - Bruno

-1
我刚刚解决了这个问题:
尽管在包含 PHPunit 和 Composer 的框架后,我调用了“spl_autoload_register”来加载我的自定义框架,但有时会先加载我的框架。所以我在我的自动加载器中添加了一个白名单(参见 $tabLibCommunPrefixes):
function phpunit_bootstrap_autoload($class_name) {
    $prefixe = substr($class_name, 0, strpos($class_name, '_'));

    $tabLibCommunPrefixes = array('Smarty', 'Zend', 'Bvb', 'Composer', 'domxml-php4-compat', 'FirePhp', 'Mobile', 'Nusoap', 'Pear', 'phing', 'PhpMailer', 'phpThumb', 'Sitra', 'Smarty3', 'smarty', 'test', 'upload', );
    if (in_array($prefixe, $tabLibCommunPrefixes)) {
        require_once str_replace('_', '/', $class_name) . '.php';
        return true;
    }

    return false;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接