代码接收。 Actor 类 加载了两次

Codeception. Actor classes loaded twice

我尝试在 Codeception 中配置单元测试套件。当我 运行 套件 Codeception 因错误 Fatal error: Cannot re-declare class rest\tests\UnitTester 而失败时。使用调试器,我找到了第一次和第二次加载 class 的地方。

在向加载程序添加步骤期间,Codeception 首次在 Codeception\Test\Loader\Gherkin 中加载 Actor。

它第二次为 class 初始化 Actor 实例并进行测试。其次,这个 class 必须已经包含,但加载器再次被触发。这里出现错误。

Class 使用 Codeception 加载器加载。一开始以为是namespace引起的,但是UnitTester在namespace里面只有一个class。我的 .yml 文件列在下面。非常感谢您的帮助。

codeception.yml:

actor: Tester
paths:
    tests: tests
    log: tests/_output
    data: tests/_data
    support: tests/_support
    envs: tests/_envs
settings:
    bootstrap: _bootstrap.php
    colors: true
    memory_limit: 1024M
modules:
    config:
        Yii2:
            configFile: 'config/test-local.php'

unit.suite.yml:

class_name: UnitTester
    modules:
        enabled:
            - Yii2
            - Asserts

我找到了这个问题的原因。当测试文件夹中的 类 位于命名空间下时,我的 codeception.yml 测试缺少命名空间参数。这导致了我的问题。