Почему Yii2 не отлавливает исключения при тестировании черезе Codeception?

Yii2 не отлавливает исключения при тестировании через Codeception по умолчанию, потому что он устанавливает YI_DEBUG значение false во время выполнения тестовых сценариев. Это сделано для того, чтобы не отображать отладочную информацию во время выполнения тестов и сохранить результаты чистыми и понятными.

Однако, если вы хотите включить отлов исключений во время тестирования, вы можете настроить Yii2 для отображения отладочной информации.

Существует несколько способов сделать это. Вот некоторые из них:

1. В config/test.php файла проекта Yii2, вы можете установить значение YI_DEBUG на true. Например:

return [
    // ...
    'components' => [
        // ...
    ],
    'params' => [
        // ...
    ],
    'bootstrap' => [
        // ...
    ],
    'modules' => [
        // ...
    ],
    'params' => [
        'yiiDebug' => true,
        // ...
    ],
];

2. В фреймворке Codeception, вы можете настроить test.suite.yml файл, чтобы включить отладку во время выполнения тестов. Вы можете добавить Yii2 конфигурацию в параметры bootstrap для соответствующего сценария тестирования. Например:

actor: Tester
paths:
    tests: tests
    output: tests/_output
    data: tests/_data
    support: tests/_support
settings:
    bootstrap: _bootstrap.php
    suite_class: 'yiicodeceptionTestCase'
    'modules':
      enabled:
        - Asserts
        - Yii2:
            configFile: ../config/test.php

После настройки, Yii2 будет отлавливать исключения и отображать отладочную информацию при выполнении тестов через Codeception.

Обратите внимание, что включение отладочной информации при тестировании может замедлить процесс тестирования и может быть не безопасным в случае, если отладочная информация содержит конфиденциальные данные, такие как пароли или ключи API. Поэтому, следует быть аккуратным при использовании отладочной информации в тестовых сценариях.