2017-09-01 1 views
2

J'ai cette erreur sur les tests d'exécutionPHP erreur fatale avec PHPUnit sur Symfony 3.3.8

PHP Fatal error: Class 'PHPUnit\Framework\TestCase' not found in /vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Test/KernelTestCase.php on line 24

je peux résoudre ce changement

use PHPUnit\Framework\TestCase; 
... 
abstract class KernelTestCase extends TestCase 

par

abstract class KernelTestCase extends \PHPUnit_Framework_TestCase 

Est-ce un bug ou une configuration sur la version 3.3.8 de Symfony?

Merci

P.S. differrent de Why, Fatal error: Class 'PHPUnit_Framework_TestCase' not found in ...? l'erreur n'est pas Erreur fatale: Classe 'PHPUnit_Framework_TestCase' introuvable dans ...

+2

Vous êtes probablement absent de la dépendance PHPUnit dans votre dossier fournisseur. Vérifiez votre fichier composer.json s'il est présent. Si c'est dans une liste 'require-dev', installez-la en utilisant' composer update --dev' – rickdenhaan

+0

Comment lancez-vous les tests depuis le dossier racine de Symfony? Quelle est la commande 'exact'? –

Répondre

1

Je peux résoudre le problème. Avec PHPUnit 5.4.6 les tests fonctionnent bien, mais avec PHPUnit 5.1.3 pas.

Les solutions sont

update phpci 

ou

Ajouter /usr/share/php/PHPUnit/ForwardCompatibility/TestCase.php au serveur "problématique"

<?php 
/* 
* This file is part of PHPUnit. 
* 
* (c) Sebastian Bergmann <[email protected]> 
* 
* For the full copyright and license information, please view the  LICENSE 
* file that was distributed with this source code. 
*/ 

namespace PHPUnit\Framework; 

use PHPUnit_Framework_TestCase; 

class TestCase extends PHPUnit_Framework_TestCase 
{ 
} 

Et ajoutez cette classe/usr/share/php/PHPUnit/Autoload. php

... 
$classes = array(
    'phpunit\\framework\\testcase' => '/ForwardCompatibility/TestCase.php', 
... 

Merci.

+0

Vous devez accepter votre réponse pour résoudre la question. – chalasr