首页 > 解决方案 > Codeception\Exception\InjectionException : 服务 di 未定义,无法从测试中访问

问题描述

下午5:45开始测试...

/usr/local/bin/php -dxdebug.remote_enable=1 -dxdebug.remote_mode=req -dxdebug.remote_port=9001 -dxdebug.remote_host=127.0.0.1 /var/www/example/vendor/phpunit/phpunit/phpunit --no-configuration --filter "/(::testMerlinTemplate)( .*)?$/" tests\jobs\SettlementJobTest /var/www/example/tests/unit/jobs/SettlementJobTest.php --teamcity
PHPUnit 7.1.4 by Sebastian Bergmann and contributors.


Codeception\Exception\InjectionException : Service di is not defined and can't be accessed from a test
 /var/www/example/vendor/codeception/base/src/Codeception/Test/Metadata.php:191
 /var/www/example/vendor/codeception/base/src/Codeception/Test/Unit.php:47

标签: phpphpunitcodeception

解决方案


您正在尝试使用 phpunit 运行 Codeception 单元测试,di(依赖注入)服务在后者中不可用。您应该使用 Codeception CLI 运行测试,例如:

codecept run /var/www/example/tests/unit/jobs/SettlementJobTest.php

推荐阅读