Configuration
Global Configuration
Configuration file codeception.yml
is generated by codecept bootstrap
command. It has preconfigured settings you can change.
Here are global options you can change inside configuration:
-
actor_suffix: Tester
: changes suffix for Actor classes. This defines a rule to generate new test suites. If you changeTester
toNinja
, and generate newapi
test suite, you will getApiNinja
actor class. -
namespace
: set a namespace for tests. All new tests and support classes will be generated under that namespace. Allows to configure multiple test setups for one runner. -
include: []
: include additional Codeception configurations for multiple applications setup. -
paths
directories used by Codeception. Default values are:
paths: # where the tests stored tests: tests # directory for fixture data data: tests/_data # directory for support code support: tests/_support # directory for output output: tests/_output # directory for environment configuration envs: tests/_envs
-
settings
: provide additional options for test runner. They may dramatically change the way Codeception is executed. For instance, take a note ofshuffle
option which allows to randomize tests execution order andlint
option that toggles parsing a test file (usingphp -l
) before loading it.
settings: # enable/disable syntax of test files before loading # for php < 7 exec('php -l') is used # disable if you need to speed up tests execution lint: true # randomize test order shuffle: true # by default it's false on Windows # use [ANSICON](https://github.com/adoxa/ansicon) to colorize output. colors: true # Generate XML JUnit report using strict schema # Avoid putting additional report fields like steps or scenario names to it # Required for XML reports on Jenkins CI strict_xml: false # Tests (especially functional) can take a lot of memory # We set a high limit for them by default. memory_limit: 1024M # This value controls whether PHPUnit attempts to backup global variables # See https://phpunit.de/manual/current/en/appendixes.annotations.html#appendixes.annotations.backupGlobals backup_globals: true # PHPUnit can be strict about tests that do not test anything # See https://phpunit.de/manual/current/en/risky-tests.html#risky-tests.useless-tests report_useless_tests: false # PHPUnit can be strict about output during tests. # See https://phpunit.de/manual/current/en/risky-tests.html#risky-tests.output-during-test-execution disallow_test_output: false # PHPUnit can be strict about tests that manipulate global state. # See https://phpunit.de/manual/current/en/risky-tests.html#risky-tests.global-state-manipulation be_strict_about_changes_to_global_state: false # Log the incomplete and skipped tests into junit report # See https://phpunit.de/manual/current/en/appendixes.configuration.html # Section logging > junit log_incomplete_skipped: false # Set the error_reporting level # You can specify either a predefined constant or an integer value # See https://www.php.net/manual/en/function.error-reporting.php # See https://www.php.net/manual/en/errorfunc.constants.php error_level: E_ALL & ~E_STRICT & ~E_DEPRECATED
-
modules
: allows to create shared module configuration for all included suites.
modules: config: Db: dsn: '' user: '' password: '' dump: tests/_data/dump.sql
-
extends
: allows you to specify a file (relative to thecodeception.yml
file) that holds some already pre-defined values. This can be used to always use the same configuration for modules or whatever. -
extensions
: allows to enable and configure Codeception extensions, Group Objects, and Custom Commands. -
reporters
: allows to change default reporters of Codeception -
coverage
: CodeCoverage settings. -
params
: allows to pass external parameters into module configuration. -
gherkin
: BDD-specific Gherkin options. -
bootstrap
: bootstrap script that will be executed before all suites. A script should be put intotests
directory.
Suite Configuration
Each generated suite have its own configuration inside directory set by paths: tests:
configuration option in codeception.yml
. Each suite configuration is named like suitename.suite.yml
. It allows to enable and configure modules, and more.
-
actor
: name of the actor class for current suite. -
modules
: list of enabled modules with their configuration.
modules: # enabled modules and helpers enabled: # built-in modules are listed by their names - PhpBrowser: # module configuration url: http://localhost # this module is pre-configured in global config - Db # helper names are listed by their class names # by convention their names start with \ - \Helper\Acceptance # additional modules configuration # can be used for modules which are not currently enabled config: WebDriver: browser: firefox # list of modules disabled for this suite disabled: - WebDriver
-
extends
: allows you to specify a file (relative to the*.suite.yml
file) that holds some already pre-defined values. This can be used to always use the same configuration for modules or whatever. -
namespace
: default namespace of actor, support classes and tests. -
suite_namespace
: default namespace for new tests of this suite (ignoresnamespace
option) -
env
: override any configuration per environment. -
groups
: groups with the list of tests of for corresponding group. -
formats
: formats with the list of extra test format classes. -
coverage
: per suite CodeCoverage settings. -
gherkin
: per suite BDD Gherkin settings. -
error_level
: error level for runner in current suite. Can be specified for unit, integration, functional tests. Passes value toerror_reporting
function. Suite specific value will override the global value. -
bootstrap
: bootstrap script that will be executed before current suites. A script should be put into suite directory.
Config Templates (dist)
To provide the same configuration template for your development team, you can create a codeception.dist.yml
config file, which will be loaded before codeception.yml
. The dist config provides shared options, while local codeception.yml
files override them on a per-installation basis. Therefore, codeception.yml
should be ignored by your VCS system.
Config templates can also be used for suite configuration, by creating a suitename.suite.dist.yml
file.
Configuration loading order:
codeception.dist.yml
codeception.yml
acceptance.suite.dist.yml
acceptance.suite.yml
- environment config
© 2011 Michael Bodnarchuk and contributors
Licensed under the MIT License.
https://codeception.com/docs/reference/Configuration