php - 如何通过 Composer 安装 PHPUnit 并进行覆盖日志记录

标签 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"/>

最佳答案

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

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

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

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

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

require 'vendor/autoload.php';

关于php - 如何通过 Composer 安装 PHPUnit 并进行覆盖日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22436058/

相关文章:

php - 如何提供不同的响应式图像?

php - 如何根据另一个表中的公共(public) id 值选择一个表中的记录?

cakephp - 设置 CakePHP 3 插件测试

测试期间 Phpunit token 存储错误

关于网站用户身份验证的 PHP 最佳实践?

PHP内置服务器,有什么办法可以配置它来显示目录文件?

php - 如果在部署到服务器后不将数据库连接更改为 'localhost',我是否在浪费带宽

PHPUnit:是否有类似 "assertExistsNotNull"的内容?

installation - PHPUnit 中的 setup() 和 Codeception 中的 _before 有什么区别

php - Symfony3 phpunit xml