未找到Symfony 4 phpunit类WebTestCase
我用composer create项目启动了一个新的symfony/skeleton项目 现在我想添加php单元,所以我这样做了未找到Symfony 4 phpunit类WebTestCase,php,symfony,phpunit,autoloader,Php,Symfony,Phpunit,Autoloader,我用composer create项目启动了一个新的symfony/skeleton项目 现在我想添加php单元,所以我这样做了 composer-require--dev-test Flex下载并安装phpunit桥 不过,我在运行php单元时遇到了一个问题,因为它似乎无法正确自动加载 我运行bin/phpunit,它显示: #!/usr/bin/env php PHP Fatal error: Class 'Symfony\Bundle\FrameworkBundle\Test\WebTe
composer-require--dev-test
Flex下载并安装phpunit桥
不过,我在运行php单元时遇到了一个问题,因为它似乎无法正确自动加载
我运行bin/phpunit
,它显示:
#!/usr/bin/env php
PHP Fatal error: Class 'Symfony\Bundle\FrameworkBundle\Test\WebTestCase' not found in /var/www/backend/tests/TestTest.php on line 6
PHP Stack trace:
PHP 1. {main}() /var/www/backend/bin/phpunit:0
PHP 2. require() /var/www/backend/bin/phpunit:20
PHP 3. include() /var/www/backend/vendor/symfony/phpunit-bridge/bin/simple-phpunit:261
PHP 4. PHPUnit\TextUI\Command::main() /var/www/backend/bin/.phpunit/phpunit-6.5/phpunit:17
PHP 5. Symfony\Bridge\PhpUnit\Legacy\CommandForV6->run() /var/www/backend/bin/.phpunit/phpunit-6.5/src/TextUI/Command.php:148
PHP 6. Symfony\Bridge\PhpUnit\Legacy\CommandForV6->handleArguments() /var/www/backend/bin/.phpunit/phpunit-6.5/src/TextUI/Command.php:159
PHP 7. PHPUnit\Util\Configuration->getTestSuiteConfiguration() /var/www/backend/bin/.phpunit/phpunit-6.5/src/TextUI/Command.php:837
PHP 8. PHPUnit\Util\Configuration->getTestSuite() /var/www/backend/bin/.phpunit/phpunit-6.5/src/Util/Configuration.php:918
PHP 9. PHPUnit\Framework\TestSuite->addTestFiles() /var/www/backend/bin/.phpunit/phpunit-6.5/src/Util/Configuration.php:1014
PHP 10. PHPUnit\Framework\TestSuite->addTestFile() /var/www/backend/bin/.phpunit/phpunit-6.5/src/Framework/TestSuite.php:403
PHP 11. PHPUnit\Util\Fileloader::checkAndLoad() /var/www/backend/bin/.phpunit/phpunit-6.5/src/Framework/TestSuite.php:325
PHP 12. PHPUnit\Util\Fileloader::load() /var/www/backend/bin/.phpunit/phpunit-6.5/src/Util/Fileloader.php:48
PHP 13. include_once() /var/www/backend/bin/.phpunit/phpunit-6.5/src/Util/Fileloader.php:64
My phpunit.xml.dist是由flex安装的:
<?xml version="1.0" encoding="UTF-8"?>
<!-- https://phpunit.de/manual/current/en/appendixes.configuration.html -->
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/6.5/phpunit.xsd"
backupGlobals="false"
colors="true"
bootstrap="vendor/autoload.php"
>
<php>
<ini name="error_reporting" value="-1" />
</php>
<testsuites>
<testsuite name="Project Test Suite">
<directory>tests</directory>
</testsuite>
</testsuites>
<filter>
<whitelist>
<directory>src</directory>
</whitelist>
</filter>
<listeners>
<listener class="Symfony\Bridge\PhpUnit\SymfonyTestsListener" />
</listeners>
</phpunit>
尝试按如下方式添加: 编写器要求——dev symfony/phpunit桥
问候,因此这可能适合您 要从
bin/phpunit中删除这些行
$classLoader = require dirname(__DIR__).'/vendor/autoload.php';
App\Kernel::bootstrapEnv('test');
$classLoader->unregister();
Source->我也有这个问题。这个问题通过这个解决方案解决了 首先,在symfony 4上卸下此软件包
composer remove symfony/phpunit-bridge
然后跑
composer require --dev phpunit/phpunit
然后在根目录中编辑phpunit.xml.dist
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="vendor/phpunit/phpunit/phpunit.xsd"
backupGlobals="false"
colors="true"
bootstrap="vendor/autoload.php">
这是一个bug。我建议订阅以保持最新。
composer remove symfony/phpunit-bridge
composer require --dev phpunit/phpunit
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="vendor/phpunit/phpunit/phpunit.xsd"
backupGlobals="false"
colors="true"
bootstrap="vendor/autoload.php">
./vendor/bin/phpunit test