Voi oferi aici o soluție murdară, care poate fi copiată cu ușurință fără a ajusta niciun cod.
S-ar putea să fie soluții mai bune, sunt deschis pentru alte răspunsuri!
De asemenea, nu voi promite 100% că acest lucru funcționează în toate circumstanțele. Poate că opcache poate aduce surprize urâte?
Creați următorul fișier în „tests/src/$modulename/Traits/AutoloadHelperTrait.php”
.
A inlocui <MODULENAME>
cu numele real al modulului.
<?php
declare(strict_types=1);
spațiu de nume Drupal\Tests\<NUME MODUL>\Trasături;
utilizați Composer\Autoload\ClassLoader;
\call_user_func(funcție statică (): void {
$rc = nou \ReflectionClass(ClassLoader::class);
$classLoader = require dirname($rc->getFileName(), 2) . '/autoload.php';
$level = \substr_count(__NAMESPACE__, '\');
$dir = dirname(__DIR__, $nivel - 2);
// Spațiul de nume începe întotdeauna cu „Drupal\Tests\”, independent de
// numele modulului.
$nspos = \strpos(__NAMESPACE__, '\', 13);
$namespace = \substr(__NAMESPACE__, 0, $nspos + 1);
$classLoader->addPsr4($namespace, $dir);
});
/**
* Includeți această trăsătură pentru a înregistra întregul test/src/ pentru încărcarea clasei.
*/
caracteristică AutoloadHelperTrait {}
Acum includeți trăsătura în orice clasă de testare care necesită activarea acestei încărcări automate. Sau includeți-l dintr-o clasă de bază de testare.