According to the docs:
- For global config (codeception.yml):
Allows you to specify a file (relative to the codeception.yml file) that holds some already pre‑defined values.
- For suite configs (*.suite.yml):
Allows you to specify a file (relative to *.suite.yml) that holds some already pre‑defined values.
- Config loading order also includes *.dist.yml configs.
What I tried
I wanted to reuse the root config files in a submodule by extending them:
Global config:
# /instance/codeception.dist.yml
extends: ../codeception.dist.yml
Suite config:
# /instance/tests/Acceptance.suite.dist.yml
extends: ../../tests/Acceptance.suite.dist.yml
What happens
-
Global extends:
- Array options (e.g. modules) merge as expected.
- Scalar options (single values) are not inherited — they reset to empty/default.
- params defined in the base file are ignored when loaded via extends.
(This matches another report: Params source is ignored if yml file is extended #6799)
-
Suite extends:
- In .suite.dist.yml files the extends option is ignored completely.
Expected
Based on the docs, extends should allow inheriting values from another config file (both global and suite level), so that shared configs can live in one place and be reused.
Currently this does not work reliably: global only partially works, suite configs .dist.yml not at all.
Reactions are currently unavailable
According to the docs:
What I tried
I wanted to reuse the root config files in a submodule by extending them:
Global config:
Suite config:
What happens
Global extends:
(This matches another report: Params source is ignored if yml file is extended #6799)
Suite extends:
Expected
Based on the docs, extends should allow inheriting values from another config file (both global and suite level), so that shared configs can live in one place and be reused.
Currently this does not work reliably: global only partially works, suite configs .dist.yml not at all.