2017-08-03 1 views
0

Je suis en train de tester une application que je fais dans Laravel 5.4 mais quand je tape la commande PHPUnit sur la console j'obtiens cette erreur:

PHP Warning: is_dir() expects parameter 1 to be a valid path, object given in /Users/nico/.composer/vendor/phpunit/phpunit/src/Runner/BaseTestRunner.php on line 56

Warning: is_dir() expects parameter 1 to be a valid path, object given in /Users/nico/.composer/vendor/phpunit/phpunit/src/Runner/BaseTestRunner.php on line 56 PHP Recoverable fatal error: Object of class PHPUnit\Framework\TestSuite could not be converted to string in /Users/nico/.composer/vendor/phpunit/phpunit/src/Runner/StandardTestSuiteLoader.php on line 32

Recoverable fatal error: Object of class PHPUnit\Framework\TestSuite could not be converted to string in /Users/nico/.composer/vendor/phpunit/phpunit/src/Runner/StandardTestSuiteLoader.php on line 32 ~/code/intranet $ phpunit PHP Warning: is_dir() expects parameter 1 to be a valid path, object given in /Users/nico/.composer/vendor/phpunit/phpunit/src/Runner/BaseTestRunner.php on line 56

Warning: is_dir() expects parameter 1 to be a valid path, object given in /Users/nico/.composer/vendor/phpunit/phpunit/src/Runner/BaseTestRunner.php on line 56 PHP Recoverable fatal error: Object of class PHPUnit\Framework\TestSuite could not be converted to string in /Users/nico/.composer/vendor/phpunit/phpunit/src/Runner/StandardTestSuiteLoader.php on line 32

Recoverable fatal error: Object of class PHPUnit\Framework\TestSuite could not be converted to string in /Users/nico/.composer/vendor/phpunit/phpunit/src/Runner/StandardTestSuiteLoader.php on line 32 ~/code/intranet $

Le paramètre auquel l'erreur fait référence et la variable suiteClassName de $ que quelque part dans le code est transformé en un objet au lieu d'une chaîne comme supposé

public function getTest($suiteClassName, $suiteClassFile = '', $suffixes = '') 
    { 
     if (\is_dir($suiteClassName) && 
      !\is_file($suiteClassName . '.php') && empty($suiteClassFile)) { 
      $facade = new File_Iterator_Facade; 
      $files = $facade->getFilesAsArray(
       $suiteClassName, 
       $suffixes 
      ); 

      $suite = new TestSuite($suiteClassName); 
      $suite->addTestFiles($files); 

      return $suite; 
     } 

Merci à l'avance pour l'aide

+0

Vous ne savez pas quelle est la question. L'erreur est explicite, alors arrêtez de passer un objet. –

+0

Passez le nom suiteClassFile au lieu de suiteClassName –

+0

Merci pour les réponses les gars, Le problème est que $ suiteClassFile est une chaîne vide et je ne peux pas comprendre où ces deux variables sont instanciées. Je ne pense pas avoir édité le répertoire des fournisseurs de Laravel donc tout devrait être par défaut. –

Répondre

0

La raison en est que vous avez mis à jour votre version de php vers la version 7.0+. Donc, vous devez réparer votre composer.json. Utilisez "~ 6.3" au lieu de "~ 5.x" sur l'option phpunit. La version 5.x fonctionne avec php 5.4, mais elle ne fonctionne pas avec php 7.0+