{
"require-dev": {
"phpunit/phpunit": "4.5.*"
}
}
<?php
date_default_timezone_set("Europe/Paris");
require __DIR__.'/vendor/Symfony/Component/ClassLoader/UniversalClassLoader.php';
use Symfony\Component\ClassLoader\UniversalClassLoader;
$loader = new UniversalClassLoader();
$loader->registerNamespaces(array(
'Hangman' => __DIR__.'/src',
'Symfony' => __DIR__.'/vendor',
));
$loader->register();
<?xml version="1.0" encoding="UTF-8"?>
<!-- http://phpunit.de/manual/4.1/en/appendixes.configuration.html -->
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.1/phpunit.xsd"
backupGlobals="false"
colors="true"
bootstrap="autoload.php"
>
<testsuites>
<testsuite name="hangman">
<directory>tests/Hangman/Tests</directory>
</testsuite>
</testsuites>
<filter>
<blacklist>
<directory>vendor</directory>
</blacklist>
</filter>
</phpunit>
我执行了:phpunit --bootstrap autoload.php tests
我的错误:Cannot open file "autoload.php"
答案 0 :(得分:2)
您可以在bootstrap="vendor/autoload.php"
中尝试phpunit.xml
。然后PHPUnit和您的测试将使用Composer Autoloader。
或者您可以通过添加autoload.php
在require 'vendor/autoload.php';
中要求Composer Autoloader(除了Symfony的UCL之外)。这导致两个自动加载器被注册。
然后运行:
composer update
- 获取依赖关系并重建自动加载文件phpunit
- 执行测试运行您不需要使用phpunit
运行--bootstrap
,因为该指令已在您的phpunit.xml中设置。
我认为你的文件夹布局不对。 你从这开始:
c:\wamp\www\yourproject
\src
\tests
\- phpunit.xml.dist
\vendor
\composer.json
phpunit
添加到composer.json require-dev
部分
"bin-dir" : "bin"
,以便phpunit.bat位于c:\wamp\www\yourproject\bin\phpunit.bat
而非c:\wamp\www\yourproject\vendor\bin\phpunit.bat
composer install
或更新c:\wamp\www\yourproject\bin\phpunit.bat -c c:\wamp\www\yourproject\tests\phpunit.xml.dist
答案 1 :(得分:1)
我正在使用PHPUnit 7,并且在此基础上,我在下面提到了经过测试并可以100%工作的解决方案
如果您是Windows用户,请在cmd上键入以下内容: “ vendor / bin / phpunit” --bootstrap ./vendor/autoload.php ./tests/EmailTest
确保在供应商和测试之前,我已经更新了./。