RunProcess
extends Extension
in package
Extension to start and stop processes per suite.
Can be used to start/stop selenium server, chromedriver, mailcatcher, etc.
Can be configured in suite config:
# acceptance.suite.yml
extensions:
enabled:
- Codeception\Extension\RunProcess:
- chromedriver
Multiple parameters can be passed as array:
# acceptance.suite.yml
extensions:
enabled:
- Codeception\Extension\RunProcess:
- php -S 127.0.0.1:8000 -t tests/data/app
- java -jar ~/selenium-server.jar
In the end of a suite all launched processes will be stopped.
To wait for the process to be launched use sleep
option.
In this case you need configuration to be specified as object:
extensions:
enabled:
- Codeception\Extension\RunProcess:
0: java -jar ~/selenium-server.jar
1: mailcatcher
sleep: 5 # wait 5 seconds for processes to boot
HINT: you can use different configurations per environment.
Table of Contents
Properties
- $config : mixed
- $events : mixed
- $globalConfig : mixed
- $options : mixed
- $output : mixed
- $modules : mixed
- $processes : mixed
Methods
- __construct() : mixed
- __destruct() : mixed
- __sleep() : mixed
- Disable the deserialization of the class to prevent attacker executing code by leveraging the __destruct method.
- __wakeup() : mixed
- Disable the deserialization of the class to prevent attacker executing code by leveraging the __destruct method.
- _initialize() : mixed
- You can do all preparations here. No need to override constructor.
- _reconfigure() : mixed
- Pass config variables that should be injected into global config.
- getCurrentModuleNames() : mixed
- getDataDir() : mixed
- getGlobalConfig() : mixed
- getLogDir() : mixed
- getModule() : mixed
- getRootDir() : mixed
- getSubscribedEvents() : array<string, string|array{0: string, 1: int}|array<int, array{0: string, 1?: int}>>
- Returns an array of event names this subscriber wants to listen to.
- getTestsDir() : mixed
- hasModule() : mixed
- receiveModuleContainer() : mixed
- runProcess() : mixed
- stopProcess() : mixed
- write() : mixed
- writeln() : mixed
Properties
$config
protected
mixed
$config
= ['sleep' => 0]
$events
protected
static mixed
$events
= [\Codeception\Events::SUITE_BEFORE => 'runProcess', \Codeception\Events::SUITE_AFTER => 'stopProcess']
$globalConfig
protected
mixed
$globalConfig
$options
protected
mixed
$options
$output
protected
mixed
$output
$modules
private
mixed
$modules
= []
$processes
private
mixed
$processes
= []
Methods
__construct()
public
__construct(mixed $config, mixed $options) : mixed
Parameters
- $config : mixed
- $options : mixed
__destruct()
public
__destruct() : mixed
__sleep()
Disable the deserialization of the class to prevent attacker executing code by leveraging the __destruct method.
public
__sleep() : mixed
Tags
__wakeup()
Disable the deserialization of the class to prevent attacker executing code by leveraging the __destruct method.
public
__wakeup() : mixed
Tags
_initialize()
You can do all preparations here. No need to override constructor.
public
_initialize() : mixed
Also you can skip calling _reconfigure
if you don't need to.
_reconfigure()
Pass config variables that should be injected into global config.
public
_reconfigure([array<string|int, mixed> $config = [] ]) : mixed
Parameters
- $config : array<string|int, mixed> = []
getCurrentModuleNames()
public
getCurrentModuleNames() : mixed
getDataDir()
public
getDataDir() : mixed
getGlobalConfig()
public
getGlobalConfig() : mixed
getLogDir()
public
getLogDir() : mixed
getModule()
public
getModule(mixed $name) : mixed
Parameters
- $name : mixed
getRootDir()
public
getRootDir() : mixed
getSubscribedEvents()
Returns an array of event names this subscriber wants to listen to.
public
static getSubscribedEvents() : array<string, string|array{0: string, 1: int}|array<int, array{0: string, 1?: int}>>
The array keys are event names and the value can be:
- The method name to call (priority defaults to 0)
- An array composed of the method name to call and the priority
- An array of arrays composed of the method names to call and respective priorities, or 0 if unset
For instance:
- ['eventName' => 'methodName']
- ['eventName' => ['methodName', $priority]]
- ['eventName' => [['methodName1', $priority], ['methodName2']]]
The code must not depend on runtime state as it will only be called at compile time. All logic depending on runtime state must be put into the individual methods handling the events.
Return values
array<string, string|array{0: string, 1: int}|array<int, array{0: string, 1?: int}>>getTestsDir()
public
getTestsDir() : mixed
hasModule()
public
hasModule(mixed $name) : mixed
Parameters
- $name : mixed
receiveModuleContainer()
public
receiveModuleContainer(SuiteEvent $e) : mixed
Parameters
- $e : SuiteEvent
runProcess()
public
runProcess() : mixed
stopProcess()
public
stopProcess() : mixed
write()
protected
write(mixed $message) : mixed
Parameters
- $message : mixed
writeln()
protected
writeln(mixed $message) : mixed
Parameters
- $message : mixed