spryker/console
最新稳定版本:4.18.0
Composer 安装命令:
composer require spryker/console
包简介
Console module
README 文档
README
Console is a wrapper over Symfony's Console component, that makes the implementation and configuration of a console command easier. A console command is a php class that contains the implementation of a functionality that can get executed from the command line.
Installation
composer require spryker/console
Documentation
Testing Console Commands
The Console module provides a ConsoleHelper to simplify testing console commands using Codeception.
Using ConsoleHelper
The ConsoleHelper wraps your console command in a CommandTester instance, which allows you to execute the command programmatically and inspect its output and exit code.
Basic Usage
use Codeception\Test\Unit; use Symfony\Component\Console\Tester\CommandTester; use Spryker\Zed\YourModule\Communication\Plugin\Console\YourConsoleCommand; class YourConsoleCommandTest extends Unit { protected YourModuleTester $tester; public function testExecutesSuccessfully(): void { // Arrange $command = new YourConsoleCommand(); $commandTester = $this->tester->getConsoleTester($command); // Act $commandTester->execute([]); // Assert $this->assertSame(YourConsoleCommand::CODE_SUCCESS, $commandTester->getStatusCode()); $this->assertStringContainsString('Expected output', $commandTester->getDisplay()); } }
Passing Arguments and Options
The execute() method accepts an array of input parameters where:
- Arguments are passed by name:
['argumentName' => 'value'] - Options are passed with the
--prefix:['--option-name' => 'value']
public function testExecutesWithArguments(): void { // Arrange $command = new YourConsoleCommand(); $commandTester = $this->tester->getConsoleTester($command); // Act $commandTester->execute([ 'entityId' => 123, '--format' => 'json', '--verbose' => true, ]); // Assert $this->assertSame(YourConsoleCommand::CODE_SUCCESS, $commandTester->getStatusCode()); }
Execution Options
The execute() method accepts a second parameter for execution options:
$commandTester->execute( ['--option' => 'value'], [ 'interactive' => false, 'decorated' => false, 'verbosity' => OutputInterface::VERBOSITY_VERBOSE, 'capture_stderr_separately' => true, ] );
Available execution options:
interactive: Sets the input interactive flagdecorated: Sets the output decorated flagverbosity: Sets the output verbosity levelcapture_stderr_separately: Make output of standard output and standard error separately available
Inspecting Command Output
After execution, you can inspect the command results:
$commandTester->execute([]); $exitCode = $commandTester->getStatusCode(); $output = $commandTester->getDisplay(); $input = $commandTester->getInput();
Testing Exception Cases
public function testThrowsExceptionWhenFileNotFound(): void { // Expect $this->expectException(FileNotFoundException::class); // Act $command = new YourConsoleCommand(); $commandTester = $this->tester->getConsoleTester($command); $commandTester->execute([ '--file' => 'invalid-file-path', ]); }
Helper Configuration
Ensure the ConsoleHelper is configured in your codeception.yml:
modules: enabled: - \SprykerTest\Shared\Console\Helper\ConsoleHelper
统计信息
- 总下载量: 2.64M
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 1
- 依赖项目数: 22
- 推荐数: 1
其他信息
- 授权协议: proprietary
- 更新时间: 2017-12-11