PHPUnit is giving me autoload.php not found exception
-
21-12-2019 - |
Question
UPDATE
I've fixed the problem, It was all about the right permissions in app/cache
and app/logs
.
When I try to run PHPUnit in symfony2, Using this command phpunit -c app/
i get this huge error message:
PHPUnit 3.7.28 by Sebastian Bergmann.
Configuration read from /var/www/task/app/phpunit.xml.dist
PHP Warning: Uncaught exception 'PHPUnit_Framework_Error_Warning' with message 'require_once(/var/www/task/vendor/symfony/symfony/vendor/autoload.php): failed to open stream: No such file or directory' in /var/www/task/vendor/symfony/symfony/autoload.php.dist:9 Stack trace:
#0 /var/www/task/vendor/symfony/symfony/autoload.php.dist(9): PHPUnit_Util_ErrorHandler::handleError(2, 'require_once(/v...', '/var/www/task/v...', 9, Array)
#1 /var/www/task/vendor/symfony/symfony/autoload.php.dist(9): require_once()
#2 /var/www/task/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/AppKernel.php(26): require_once('/var/www/task/v...')
#3 /var/www/task/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/WebTestCase.php(47): require_once('/var/www/task/v...')
#4 /var/www/task/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/WebTestCase.php(54): Symfony\Bundle\FrameworkBundle\Tests\Functional\WebTestCase::getKernelClass()
#5 /var/www/task/vendor/symfony/symfon in /var/www/task/vendor/symfony/symfony/autoload.php.dist on line 9
PHP Stack trace:
PHP 1. {main}() /home/rafael/composer-packages/vendor/phpunit/phpunit/composer/bin/phpunit:0
PHP 2. PHPUnit_TextUI_Command::main() /home/rafael/composer-packages/vendor/phpunit/phpunit/composer/bin/phpunit:63
PHP 3. PHPUnit_TextUI_Command->run() /home/rafael/composer-packages/vendor/phpunit/phpunit/PHPUnit/TextUI/Command.php:129
PHP 4. PHPUnit_TextUI_TestRunner->doRun() /home/rafael/composer-packages/vendor/phpunit/phpunit/PHPUnit/TextUI/Command.php:176
PHP 5. PHPUnit_Framework_TestSuite->run() /var/www/task/vendor/phpunit/phpunit/PHPUnit/TextUI/TestRunner.php:349
PHP 6. PHPUnit_Framework_TestSuite->run() /var/www/task/vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite.php:705
PHP 7. PHPUnit_Framework_TestSuite->runTest() /var/www/task/vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite.php:745
PHP 8. PHPUnit_Framework_TestCase->run() /var/www/task/vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite.php:775
PHP 9. PHPUnit_Framework_TestResult->run() /var/www/task/vendor/phpunit/phpunit/PHPUnit/Framework/TestCase.php:783
PHP 10. PHPUnit_Framework_TestCase->runBare() /var/www/task/vendor/phpunit/phpunit/PHPUnit/Framework/TestResult.php:648
PHP 11. Tsk\UserBundle\Tests\Unit\Entity\ModelTestCase->setUp() /var/www/task/vendor/phpunit/phpunit/PHPUnit/Framework/TestCase.php:835
PHP 12. Symfony\Bundle\FrameworkBundle\Test\WebTestCase::createClient() /var/www/task/src/Tsk/UserBundle/Tests/Unit/Entity/ModelTestCase.php:13
PHP 13. Symfony\Bundle\FrameworkBundle\Tests\Functional\WebTestCase::createKernel() /var/www/task/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Test/WebTestCase.php:46
PHP 14. Symfony\Bundle\FrameworkBundle\Tests\Functional\WebTestCase::getKernelClass() /var/www/task/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/WebTestCase.php:54
PHP 15. require_once() /var/www/task/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/WebTestCase.php:47
PHP 16. require_once() /var/www/task/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/AppKernel.php:26 PHP Fatal error: main(): Failed opening required '/var/www/task/vendor/symfony/symfony/vendor/autoload.php' (include_path='/var/www/task/vendor/phpunit/php-text-template:/var/www/task/vendor/phpunit/phpunit-mock-objects:/var/www/task/vendor/phpunit/php-timer:/var/www/task/vendor/phpunit/php-token-stream:/var/www/task/vendor/phpunit/php-file-iterator:/var/www/task/vendor/phpunit/php-code-coverage:/var/www/task/vendor/phpunit/phpunit:/var/www/task/vendor/symfony/yaml:/home/rafael/composer-packages/vendor/phpunit/php-text-template:/home/rafael/composer-packages/vendor/phpunit/phpunit-mock-objects:/home/rafael/composer-packages/vendor/phpunit/php-timer:/home/rafael/composer-packages/vendor/phpunit/php-file-iterator:/home/rafael/composer-packages/vendor/phpunit/php-code-coverage:/home/rafael/composer-packages/vendor/phpunit/php-token-stream:/home/rafael/composer-packages/vendor/phpunit/phpunit:/home/rafael/composer-packages/vendor/symfony/yaml:.:/usr/share/php:/usr/share/pear') in /var/www/task/vendor/symfony/symfony/autoload.php.dist on line 9
PHP Stack trace:
PHP 1. {main}() /home/rafael/composer-packages/vendor/phpunit/phpunit/composer/bin/phpunit:0
PHP 2. PHPUnit_TextUI_Command::main() /home/rafael/composer-packages/vendor/phpunit/phpunit/composer/bin/phpunit:63
PHP 3. PHPUnit_TextUI_Command->run() /home/rafael/composer-packages/vendor/phpunit/phpunit/PHPUnit/TextUI/Command.php:129
PHP 4. PHPUnit_TextUI_TestRunner->doRun() /home/rafael/composer-packages/vendor/phpunit/phpunit/PHPUnit/TextUI/Command.php:176
PHP 5. PHPUnit_Framework_TestSuite->run() /var/www/task/vendor/phpunit/phpunit/PHPUnit/TextUI/TestRunner.php:349
PHP 6. PHPUnit_Framework_TestSuite->run() /var/www/task/vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite.php:705
PHP 7. PHPUnit_Framework_TestSuite->runTest() /var/www/task/vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite.php:745
PHP 8. PHPUnit_Framework_TestCase->run() /var/www/task/vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite.php:775
PHP 9. PHPUnit_Framework_TestResult->run() /var/www/task/vendor/phpunit/phpunit/PHPUnit/Framework/TestCase.php:783
PHP 10. PHPUnit_Framework_TestCase->runBare() /var/www/task/vendor/phpunit/phpunit/PHPUnit/Framework/TestResult.php:648
PHP 11. Tsk\UserBundle\Tests\Unit\Entity\ModelTestCase->setUp() /var/www/task/vendor/phpunit/phpunit/PHPUnit/Framework/TestCase.php:835
PHP 12. Symfony\Bundle\FrameworkBundle\Test\WebTestCase::createClient() /var/www/task/src/Tsk/UserBundle/Tests/Unit/Entity/ModelTestCase.php:13
PHP 13. Symfony\Bundle\FrameworkBundle\Tests\Functional\WebTestCase::createKernel() /var/www/task/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Test/WebTestCase.php:46
PHP 14. Symfony\Bundle\FrameworkBundle\Tests\Functional\WebTestCase::getKernelClass() /var/www/task/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/WebTestCase.php:54
PHP 15. require_once() /var/www/task/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/WebTestCase.php:47
PHP 16. require_once() /var/www/task/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/Functional/app/AppKernel.php:26
My phpunit.xml.dist
file:
<?xml version="1.0" encoding="UTF-8"?>
<!-- http://www.phpunit.de/manual/current/en/appendixes.configuration.html -->
<phpunit
backupGlobals = "false"
backupStaticAttributes = "false"
colors = "true"
convertErrorsToExceptions = "true"
convertNoticesToExceptions = "true"
convertWarningsToExceptions = "true"
processIsolation = "false"
stopOnFailure = "false"
syntaxCheck = "false"
bootstrap = "bootstrap.php.cache" >
<testsuites>
<testsuite name="Project Test Suite">
<directory>../src/*/*Bundle/Tests</directory>
<directory>../src/*/Bundle/*Bundle/Tests</directory>
</testsuite>
</testsuites>
<!--
<php>
<server name="KERNEL_DIR" value="/path/to/your/app/" />
</php>
-->
<filter>
<whitelist>
<directory>../src</directory>
<exclude>
<directory>../src/*/*Bundle/Resources</directory>
<directory>../src/*/*Bundle/Tests</directory>
<directory>../src/*/Bundle/*Bundle/Resources</directory>
<directory>../src/*/Bundle/*Bundle/Tests</directory>
</exclude>
</whitelist>
</filter>
</phpunit>
My app/autoload.php
:
<?php
use Doctrine\Common\Annotations\AnnotationRegistry;
use Composer\Autoload\ClassLoader;
/**
* @var ClassLoader $loader
*/
$loader = require __DIR__.'/../vendor/autoload.php';
AnnotationRegistry::registerLoader(array($loader, 'loadClass'));
return $loader;
My vendor/symfony/symfony/autoload.php.dist
:
<?php
if (version_compare(PHP_VERSION, '5.4', '>=') && gc_enabled()) {
// Disabling Zend Garbage Collection to prevent segfaults with PHP5.4+
// https://bugs.php.net/bug.php?id=53976
gc_disable();
}
$loader = require_once __DIR__.'/vendor/autoload.php';
use Doctrine\Common\Annotations\AnnotationRegistry;
AnnotationRegistry::registerLoader(array($loader, 'loadClass'));
return $loader;
Any help would be greatly appreciated, I'm stuck in this error for like 4 hours.
Solution 3
UPDATE
I've fixed the problem, It was all about the right permissions in app/cache and app/logs.
sudo chmod -R 777 app/cache
sudo chmod -R 777 app/logs
OTHER TIPS
This error message also occurs if you are not careful enough when auto-importing use
statements with your IDE. That said, importing
use Symfony\Bundle\FrameworkBundle\Tests\Functional\WebTestCase;
by mistake instead of
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
causes the same error.
It looks like you forgot to install your vendors. To do that execute composer update
(you need Composer for this). After that, you can execute the tests and use your app.