Pergunta

ATUALIZAR

Eu resolvi o problema, era tudo uma questão de permissões corretas em app/cache e app/logs.


Quando tento executar o PHPUnit no symfony2, usando este comando phpunit -c app/ recebo esta enorme mensagem de erro:

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

Meu phpunit.xml.dist arquivo:

<?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>

Meu 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;

Meu 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;

Qualquer ajuda seria muito apreciada, estou preso neste erro há cerca de 4 horas.

Foi útil?

Solução 3

ATUALIZAR

Eu resolvi o problema. Era tudo uma questão de permissões corretas em app/cache e app/logs.

sudo chmod -R 777 app/cache
sudo chmod -R 777 app/logs

Outras dicas

Esta mensagem de erro também ocorre se você não for cuidadoso o suficiente ao importar automaticamente use declarações com seu IDE.Dito isto, importar

use Symfony\Bundle\FrameworkBundle\Tests\Functional\WebTestCase;

por engano em vez de

use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;

causa o mesmo erro.

Parece que você esqueceu de instalar seus fornecedores.Para fazer isso execute composer update (você precisa Compositor por esta).Depois disso, você pode executar os testes e usar seu aplicativo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top