【问题标题】:How to install PHPUnit with coverage logging via composer如何通过 Composer 安装 PHPUnit 和覆盖日志
【发布时间】:2014-04-21 13:51:44
【问题描述】:

我正在尝试通过 composer 安装 PHPUnit,因为在文档中据说 PEAR 安装将逐渐停止 [1]。 这是我在添加永无止境的依赖项(加上我需要的其他一些工具)几个小时后的 composer.json:

    {
    "require": {
        "phpunit/phpunit": "4.0.*",
        "phpunit/dbunit": ">=1.2",
        "phpunit/php-invoker": "*",
        "phpunit/phpunit-selenium": ">=1.2",
        "phpunit/phpunit-story": "*",
        "phpunit/phpunit-mock-objects": "*",
        "phpunit/phpunit-story": "*",
        "phpunit/php-code-coverage": "2.*",
        "sebastian/diff": "*",
        "squizlabs/php_codesniffer": "*",
        "phploc/phploc": "*",
        "pdepend/pdepend" : "1.1.0",
        "phpmd/phpmd" : "1.4.*",
        "sebastian/phpcpd": "*",
        "theseer/phpdox": "dev-master"
    }
}

这是关于我的 PHP (cli) 的信息:

php -v
PHP 5.4.26 (cli) (built: Mar 15 2014 21:14:32) 
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies
    with Xdebug v2.2.3, Copyright (c) 2002-2013, by Derick Rethans

现在,当我尝试运行一些简单的测试时,我收到了一些这样的异常:

PHP Warning:  Uncaught exception 'PHPUnit_Framework_Error_Warning' with message 'require(classes/SebastianBergmann\Diff.php): failed to open stream: No such file or directory'

是否还有一些必须包含的依赖项?

PS。我试图从该站点下载 phar 文件,但它抱怨他找不到其他一些文件。

更新: 这是我的 phpunit.xml

<?xml version="1.0" encoding="UTF-8"?>
<phpunit colors="true"
    bootstrap="tests/bootstrap.php"
         backupGlobals="false"
         backupStaticAttributes="false"
         strict="true"
         verbose="true">
    <testsuites>
        <testsuite name="Test Suite">
            <directory>./tests/</directory>
        </testsuite>
    </testsuites>

    <logging>
     <log type="coverage-html" target="build/coverage"/>
     <log type="coverage-clover" target="build/logs/clover.xml"/>
     <log type="junit" target="build/logs/junit.xml" logIncompleteSkipped="false"/>
    </logging> 
</phpunit>

如果我删除覆盖记录部分,一切正常。

<log type="coverage-html" target="build/coverage"/>
<log type="coverage-clover" target="build/logs/clover.xml"/>

【问题讨论】:

    标签: php phpunit


    【解决方案1】:

    您需要做的就是进入您的项目文件夹并添加一个包含以下内容的composer.json文件:

    {
        "require-dev": {
            "phpunit/phpunit": "4.0.*"
       }
    }
    

    然后在控制台窗口中输入$ composer install,composer 将处理所有依赖项。 Composer 创建一个名为 vendor 的文件夹,其中包含一个 bin 文件夹。

    在您的项目文件夹中调用$ vendor/bin/phpunit --version 应该会打印PHPUnit 的当前版本。

    要在您的应用程序中使用 PHPUnit,您需要将自动加载文件包含到您的应用程序中:

    require 'vendor/autoload.php';
    

    【讨论】:

    • 感谢您的回答。似乎 PHPUnit 或多或少有效,问题在于覆盖记录。我已经更新了我的问题。
    猜你喜欢
    • 2014-12-25
    • 2017-05-27
    • 1970-01-01
    • 2023-04-04
    • 2015-01-21
    • 2012-09-30
    • 2011-09-10
    • 2017-11-10
    • 2016-03-29
    相关资源
    最近更新 更多