Я протестировал консольную команду, но опция '--forced'
не работает.
Я думаю, что --forced
в порядке, потому что в vendor / symfony / console / Input / InputOption.php
существует следующий код
if (0 === strpos($name, '--')) {
$name = substr($name, 2);
}
Я установил «принудительный» и получил тот же результат. Вы можете мне помочь?
Консольная команда
class SendOrderCommand extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'command:send_order {mode} {template_id} {order_id?} {--forced}';
/**
* The console command description.
*
* @var string
*/
protected $description = 'send order command';
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
$this->line('');
$this->line('===========================================');
$this->line('Running DEFAULT task [SendOrderCommand:handle]');
$this->line('===========================================');
$this->line('');
$mode = $this->argument('mode');
$templateId = $this->argument('template_id');
$orderId = $this->argument('order_id');
$forced = $this->option("forced");
Тестовый код
class SendOrderCommandTest extends TestCase
{
public function testSendOrderCommandSuccessRealForced()
{
$output = $this->execute(['mode' => 'real', 'template_id' => 1, 'order_id' => 1, '--forced']);
$this->assertFalse(strpos(trim($output->fetch()), 'already instructed') !== false);
}
$this->assertFalse(strpos(trim($output->fetch()), 'already instructed') !== false);
Этот тест ожидает «ложь» (результирующая доза не содержит «уже предписано»), но результат «истина».
[Ожидается]
[common] php artisan --env=local command:send_order real 10007 10002 --forced
===========================================
Running DEFAULT task [SendOrderCommand:handle]
===========================================
Нет ошибок.
[Actual]
[common] php artisan --env=local command:send_order real 10007 10002 --forced
===========================================
Running DEFAULT task [SendOrderCommand:handle]
===========================================
It's already instructed. If forcibly instructed, use the forced option.
'- вынужденный' параметр должен быть пропущен уже по инструкции.
То есть, '-принудительная опция 'доза не получена' команда: send_order '.