HumHub Documentation (unofficial)

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']

Methods

__construct()

public __construct(mixed $config, mixed $options) : mixed
Parameters
$config : mixed
$options : mixed

_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

getGlobalConfig()

public getGlobalConfig() : mixed

getModule()

public getModule(mixed $name) : mixed
Parameters
$name : 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}>>

hasModule()

public hasModule(mixed $name) : mixed
Parameters
$name : mixed

write()

protected write(mixed $message) : mixed
Parameters
$message : mixed

writeln()

protected writeln(mixed $message) : mixed
Parameters
$message : mixed

        
On this page

Search results