use*_*191 6 php phpunit wamp composer-php
{
"require-dev": {
"phpunit/phpunit": "4.5.*"
}
}
Run Code Online (Sandbox Code Playgroud)
<?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();
Run Code Online (Sandbox Code Playgroud)
<?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>
Run Code Online (Sandbox Code Playgroud)
我执行了: phpunit --bootstrap autoload.php tests
我的错误: Cannot open file "autoload.php"
你能帮助我吗 ?
小智 7
我正在使用 PHPUnit 7 并基于我在下面提到的解决方案,该解决方案经过测试并 100% 工作
如果您是 Windows 用户,则在 cmd 上键入以下内容:"vendor/bin/phpunit" --bootstrap ./vendor/autoload.php ./tests/EmailTest
确保我在供应商和测试之前更新了 ./。
你可以bootstrap="vendor/autoload.php"试试你的phpunit.xml. 然后 PHPUnit 和您的测试将使用 Composer Autoloader。
或者,您可以autoload.php通过添加require 'vendor/autoload.php';. 这会导致注册两个自动装载机。
然后运行:
composer update - 获取依赖项并重建自动加载文件phpunit - 执行测试运行您不需要运行phpunitwith --bootstrap,因为该指令已在您的 phpunit.xml 中设置。
我认为您的文件夹布局不正确。你从这个开始:
c:\wamp\www\yourproject
\src
\tests
\- phpunit.xml.dist
\vendor
\composer.json
Run Code Online (Sandbox Code Playgroud)
phpunit到require-devcomposer.json的部分"bin-dir" : "bin",以便 phpunit.bat 存在于c:\wamp\www\yourproject\bin\phpunit.bat而不是c:\wamp\www\yourproject\vendor\bin\phpunit.batcomposer install 或更新c:\wamp\www\yourproject\bin\phpunit.bat -c c:\wamp\www\yourproject\tests\phpunit.xml.dist