Через аннотации будет не лучшим вариантом, потому что нужно передавать или ObjectManager, или Client, с помощью которого потом получать необходимые объекты.
Можно сделать trait, который затем использовать в классе теста.
declare(strict_types=1);
namespace App\Tests\Common;
use Doctrine\Common\DataFixtures\Executor\ORMExecutor;
use Doctrine\Common\DataFixtures\FixtureInterface;
use Doctrine\Common\DataFixtures\Loader;
use Symfony\Bundle\FrameworkBundle\Client;
trait LoadFixturesTrait
{
public static function loadFixtures(Client $client, array $fixtures, bool $append=false)
{
$fixturesLoader = $client->getContainer()->get(Loader::class);
$fixturesExecutor = $client->getContainer()->get(ORMExecutor::class);
foreach ($fixtures as $fixture) {
$fixturesLoader->addFixture(
$client->getContainer()->get($fixture)
);
}
$fixturesExecutor->execute($fixturesLoader->getFixtures(), $append);
}
}
И в классе теста:
use LoadFixturesTrait;
...
protected function setUp()
{
SomeTest::loadFixtures(static::createClient(), [ProductsFixture::class]);
}
В массиве передается список фикстур, которые нужно применить.
В случае, если в методе теста используется экземпляр класса
Symfony\Bundle\FrameworkBundle\Client
, то именно этот объект нужно передавать в вышеуказанный метод.