【问题标题】:using phpunit without composer在没有作曲家的情况下使用 phpunit
【发布时间】:2014-12-10 16:10:36
【问题描述】:

我正在尝试在旧系统上安装 PHPunit, 我正在处理几个 phar 问题,

从现在开始,我已经设法让 PHPunit 运行,让我的自动加载工作,还有 pPHPunit,但现在,它正在尝试调用 composer。

我不得不添加一个扩展“PHPUnit/Extensions/Story”,它也可以工作,但现在,我必须管理作曲家...

我尝试添加 phar 以提取 phar ,......但似乎没有任何效果(如果“Composer\Autoload\ClassLoader.php”工作,那么我有一个“Instantiator\Instantiator.php”丢失...)

那么,PHPunit 是否可以在没有 composer 的情况下运行?

【问题讨论】:

  • 你使用什么命令来运行你的测试?
  • 嗨,我使用命令行和 --bootstrap ,我刚刚解决了我的问题,一个回复

标签: unit-testing phpunit composer-php phar


【解决方案1】:

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

所以最简单的方法就是简单地使用composer。仅对一小部分依赖项使用 composer 并没有错。事实上,对于一些(小)项目,我什至完全不依赖它(仅用于处理自动加载)。

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

【讨论】:

  • 对不起,如果我只是回答一个年轻的我,但我之前的自我反应在很多层面上都是错误的......
【解决方案2】:

我刚刚解决了这个问题:

尽管我在我自己的框架(包括 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;
}

【讨论】:

    猜你喜欢
    • 2018-06-16
    • 2019-07-09
    • 1970-01-01
    • 2016-07-18
    • 1970-01-01
    • 1970-01-01
    • 2019-06-07
    • 1970-01-01
    • 2018-10-21
    相关资源
    最近更新 更多