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