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: 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
log: 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:
# name of bootstrap that will be used
# each bootstrap file should be
# inside a suite directory.
bootstrap: _bootstrap.php
# 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 tot 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
modules
: allows to create shared module configuration for all included suites. By default sample configuration for Db module is included.
modules:
config:
Db:
dsn: ''
user: ''
password: ''
dump: tests/_data/dump.sql
extensions
: allows to enable and configure Codeception extensions, Group Objects, and Custom Commands.reporters
: allows to change default reporters of Codeceptioncoverage
: CodeCoverage settings.params
: allows to pass external parameters into module configuration.gherkin
: BDD-specific Gherkin options.
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
namespace
: default namespace of actor, support classes and tests.env
: override any configuration per environment.groups
: groups with the list of tests of for corresponding group.coverage
: pre suite CodeCoverage settings.gherkin
: per suite BDD Gherkin settings.error_level
: error level for runner in current suite. Should be specified for unit, integration, functional tests. Passes value toerror_reporting
function.
Config Templates (dist)
To provide same configuration templates for development team you can creare codeception.dist.yml
config which will be loaded before codeception.yml
. Dist config will provide shared options whil local codeception.yml
will override them per user basis. This way codeception.yml
should be ignored by VCS system.
For suite configuration template configs are also availble. Rename suitename.suite.yml
to suitename.dist.yml
to make a dist config.
Configuration loading order:
codeception.dist.yml
codeception.yml
acceptance.suite.dist.yml
acceptance.suite.yml
- environment config