Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

279
Vistas
Why is my custom TestCase class not being found when running tests through PhpUnit?

I added PHPUnit to my Symfony project as described in the documentation. Creating and running the first test which extend Symfony\Bundle\FrameworkBundle\Test\WebTestCase was no problem.

Now I would like to create a custom WebTestCase subclass which provides common features for other test classes:

// .../projectDir/tests/BaseTestCase.php
namespace My\Project\Tests;

use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;

class BaseTestCase extends WebTestCase {
    protected function doSomething() {}
}


// .../projectDir/tests/SomeTest.php
namespace My\Project\Tests;

use My\Project\Tests\BaseTestCase;

class SomeTest extends BaseTestCase {
    protected function testSomething() {
        $this->doSomething();
        ...
    }
}
 

When running php bin/phpunit I get an "Class not found" error:

$ php bin/phpunit
PHP Fatal error:  Uncaught Error: Class 'My\Project\Tests\BaseTestCase' not found in /path/to/projectDir/tests/SomeTest.php:6
Stack trace:
#0 /path/to/projectDir/vendor/phpunit/phpunit/src/Util/FileLoader.php(65): include_once()
#1 /path/to/projectDir/vendor/phpunit/phpunit/src/Util/FileLoader.php(49): PHPUnit\Util\FileLoader::load('/path/to/...')
#2 /path/to/projectDir/vendor/phpunit/phpunit/src/Framework/TestSuite.php(402): PHPUnit\Util\FileLoader::checkAndLoad('/path/to/...')
#3 /path/to/projectDir/vendor/phpunit/phpunit/src/Framework/TestSuite.php(530): PHPUnit\Framework\TestSuite->addTestFile('/path/to/...')
#4 /path/to/projectDir/vendor/phpunit/phpunit/src/TextUI/TestSuiteMapper.php(67): PHPUnit\Framework\TestSuite->addTestFiles(Array)
#5 /path/to/proje in /kunden/100170_47877/webpages/pockey/webpage/dev/vendor/phpunit/phpunit/src/TextUI/Command.php on line 98

I have double checked the class name, the namespace and use statement (which should not be necessary, since both classes are in the same folder/namespace).

Do I need to register BaseTestCase in PHPUnit somehow to be a valid superclass for my tests?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

It seems you are missing the declaration of the class paths for your test directory.

Generally, for the test classes themselves it's not necessary, since PhpUnit will load the test files and read the classes directly. But any other class referenced in any of the tests will need to go through the autoloader. And if you haven't declared where to find the Test namespace, it will try to find it with your regular project files (e.g. in src/).

Add an autoload-dev key to your composer.json. E.g., something like this:

{
"autoload": {
    "psr-4": {
      "My\\Project\\": "src/"
    }
  },
  "autoload-dev": {
    "psr-4": {
      "My\\Project\\Tests\\": "tests/"
    }
  }
}

Dump the autloader after this (composer dump-autload), and try running your tests again.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda