如何通过composer安装带有coverage的PHPUnit

时间:2014-03-16 11:10:27

标签: php phpunit

我正在尝试通过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"/>

1 个答案:

答案 0 :(得分:3)

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

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

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

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

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

require 'vendor/autoload.php';