代码接收。 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
测试缺少命名空间参数。这导致了我的问题。
我尝试在 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
测试缺少命名空间参数。这导致了我的问题。