Para resumir uma longa história, o xdebug não será confiável nos pontos de interrupção nos meus arquivos cron ao usar o típico:
php bin/magento cron:run
O Xdebug está configurado corretamente e, às vezes, funciona, mas 85% das vezes não funciona e fica travado na CLI até eu desligar a escuta de conexões no phpstorm.
Existe uma maneira de executar apenas um arquivo cron de alguma forma? Eu tive que copiar e colar o conteúdo do meu arquivo cron em um comando do console separado para testá-lo corretamente no xdebug, o que não é o ideal.
No Magento 1.x, eu costumava usar o AOE Scheduler para testar tarefas cron com o Xdebug, acessando o administrador, marcando a caixa que queria e escolhendo executar no menu suspenso e funcionou bem.
Eu estou olhando para usar algo como:
php bin/magento modulename:cronjob
que sempre deve executar o cron, mesmo que não esteja agendado.
require '../app/bootstrap.php';
também no TestApp.php, deve haver o::return $this->_response;
ou ele lançará um erro que você tem na captura de tela do phpstorm, mas não no código real. Vou tentar editar sua resposta com isso.A opção de economizar no tempo de desenvolvimento seria usar o N98MageRun para Magento 2.
Este tem os comandos maravilhosos
sys:cron:list
esys:cron:run
.Usando esses comandos, você poderá encontrar o código de tarefa específico para o seu cron e, em seguida, acionar apenas esse cron na linha de comando.
Ele pode ser facilmente instalado via
composer require-dev n98/magerun2
e eu recomendaria que fosse uma instalação do dev ao trabalhar com o Magento 2fonte
Você pode conseguir usando dois arquivos:
crie pasta e classe na raiz do projeto, como:
crons / CronprocessApp.php
Crie outro arquivo de classe:
crons / Cronprocess.php
Para executar o cron, vá para cli com o caminho raiz do projeto e execute o comando abaixo:
fonte
Como impedir que o Xdebug bloqueie na execução
bin/magento cron:run
fonte