如何解决测试 Symfony 定制制造商制造商捆绑包
我正在尝试使用 Symfony make bundle 制作定制制作器。
maker 命令如下所示:
<?PHP
namespace App\Maker;
use Doctrine\Common\Annotations\Annotation;
use Symfony\Bundle\MakerBundle\ConsoleStyle;
use Symfony\Bundle\MakerBundle\DependencyBuilder;
use Symfony\Bundle\MakerBundle\Generator;
use Symfony\Bundle\MakerBundle\InputConfiguration;
use Symfony\Bundle\MakerBundle\Maker\AbstractMaker;
use Symfony\Bundle\MakerBundle\Str;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
final class MakeCustomEntity extends AbstractMaker
{
public static function getCommandName(): string
{
return 'make:custom-entity';
}
public static function getCommandDescription(): string
{
return 'Creates a new entity';
}
public function configureCommand(Command $command,InputConfiguration $inputConf)
{
$command
->addArgument('entity-class',InputArgument::OPTIONAL,sprintf('Choose a name for your entity class (e.g. <fg=yellow>%s</>)',Str::asClassName(Str::getRandomTerm())));
}
public function generate(InputInterface $input,ConsoleStyle $io,Generator $generator)
{
}
public function configureDependencies(DependencyBuilder $dependencies)
{
$dependencies->addClassDependency(
Annotation::class,'doctrine/annotations'
);
}
}
到目前为止一切顺利,定制工具在列出所有命令时都会出现。
但是我想为这个 maker 编写一个测试(灵感来自我在 bundles github 上找到的测试):
<?PHP
namespace Tests\Maker;
use App\Maker\MakeCustomEntity;
use Symfony\Bundle\MakerBundle\Test\MakerTestCase;
use Symfony\Bundle\MakerBundle\Test\MakerTestDetails;
class MakeCustomEntityTest extends MakerTestCase
{
public function getTestDetails()
{
yield 'entity_full_custom_namespace' => [
MakerTestDetails::createTest(
$this->getMakerInstance(MakeCustomEntity::class),[
// entity class name
'\App\Domain\Entity\Test\Test',]
)
->assert(function (string $output,string $directory) {
$this->assertStringContainsstring('created: src/Domain/Entity/Test/Test.PHP',$output);
}),];
}
}
当我尝试运行此测试时,我收到以下警告,即使应该失败,测试也不会失败:
The data provider specified for Tests\Maker\MakeCustomEntityTest::testExecute is invalid.
You have requested a non-existent service "maker.maker.make_custom_entity". Did you mean one of these: "maker.maker.make_authenticator",...
这是测试定制制造商的正确方法吗?我应该怎么做才能避免这种情况?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。