I ont une structure de dossiers de test comme:Les tests échouent avec n'a pas pu être trouvé "Navigateur de classe"
.
├── test
│ └── e2e
│ ├── pages
│ │ └── LoginPage.php
│ └── webdriver
│ └── Browser.php
└── vendor
Quand je lance
$ vendor\bin\phpunit --bootstrap vendor/autoload.php test\e2e\HomePage.php
le test échoue avec
Fatal error: Uncaught PHPUnit\Runner\Exception: Class 'Browser' could not be found in 'C:\Users\rburton\code\MyAgsourceAPI\test\e2e\HomePage.php'. in C:\Users\rburton\code\MyAgsourceAPI\vendor\phpunit\phpunit\src\Runner\StandardTestSuiteLoader.php on line 101
PHPUnit\Runner\Exception: Class 'Browser' could not be found in 'C:\Users\rburton\code\MyAgsourceAPI\test\e2e\HomePage.php'. in C:\Users\rburton\code\MyAgsourceAPI\vendor\phpunit\phpunit\src\Runner\StandardTestSuiteLoader.php on line 101
Call Stack:
0.1973 357496 1. {main}() C:\Users\rburton\code\MyAgsourceAPI\vendor\phpunit\phpunit\phpunit:0
0.2024 746904 2. PHPUnit\TextUI\Command::main(???) C:\Users\rburton\code\MyAgsourceAPI\vendor\phpunit\phpunit\phpunit:53
0.2024 750064 3. PHPUnit\TextUI\Command->run(array(4), true) C:\Users\rburton\code\MyAgsourceAPI\vendor\phpunit\phpunit\src\TextUI\Command.php:141
0.2077 1007320 4. PHPUnit\TextUI\TestRunner->getTest(string(17), string(57), array(2)) C:\Users\rburton\code\MyAgsourceAPI\vendor\phpunit\phpunit\src\TextUI\Command.php:162
0.2078 1007320 5. PHPUnit\TextUI\TestRunner->loadSuiteClass(string(17), string(57)) C:\Users\rburton\code\MyAgsourceAPI\vendor\phpunit\phpunit\src\Runner\BaseTestRunner.php:73
0.2084 1026680 6. PHPUnit\Runner\StandardTestSuiteLoader->load(string(7), string(57)) C:\Users\rburton\code\MyAgsourceAPI\vendor\phpunit\phpunit\src\Runner\BaseTestRunner.php:130
Le seul endroit où j'instancie la classe Browser
est dans la configuration de la classe de test HomePage
:
protected function setUp()
{
$this->browserDriver = new Browser();
$this->browserDriver->start('https://192.168.3.69');
}
Ce qui me déconcerte est que l'erreur indique que le StandardTestSuiteLoader
n'a pas pu trouver la classe Browser
plutôt que dans la classe de test où la classe est instancié.
Est-ce que quelqu'un a des idées pour lesquelles la classe auxiliaire ne peut pas être trouvée? Je ressemble à du sélénium dans la bibliothèque PHPUnit ne peut pas être empaqueté comme un cadre.
Est-ce que vous incluez (ou plutôt 'require') 'Browser.php'? – GolezTrol
Pouvez-vous partager la configuration d'auto-chargement de votre 'composer.json'? – localheinz
La classe de navigateur est incluse en tant que require_once __DIR__. "/webdriver/Browser.php"; –