PHPUnit 7.5.15由塞巴斯蒂安Bergmann和贡献者编写。
Symfony\组件\依赖注入\异常\未找到服务异常:您请求的服务“text.service_container”不存在。您的意思是:“服务容器”?/opt/项目/后端/供应商/symfony/symfony/src/Symfony/组件/依赖关系注入/容器。php:277 /opt/项目/后端/供应商/symfony/symfony/src/symfony/组件/依赖关系注入/容器。php:225 /opt/项目/后端/测试/功能/内核感知测试。php:49 /opt/项目/后端/测试/功能/飞行任务管理/分配员工到任务测试。php:47
public function setUp(): void
{
global $kernel;
$this->kernel = TestKernel::get();
$kernel = $this->kernel;
$container = $this->kernel->getContainer();
if ($container === null)
throw new \InvalidArgumentException('Container can not be null.');
$this->container = $container->get('test.service_container');
// $this->container = $container->get('service_container');
/** @var Registry $doctrine */
$doctrine = $this->container->get('doctrine');
/** @var \Doctrine\ORM\EntityManager $manager */
$manager = $doctrine->getManager();
$this->entityManager = $manager;
$this->entityManager->beginTransaction();
if (!$this->container->initialized(WorkDistributionTransport::class)) {
$this->container->set(WorkDistributionTransport::class, new InMemoryTransport());
}
if (!$this->container->initialized(Configuration::class)) {
$this->container->set(Configuration::class, new TestConfiguration());
}
parent::setUp();
}
它在第行失败
$this->container = $container->get('test.service_container');
Symfony是4.1,但看起来还没有完成更新。我不记得我们决定它还没有完成更新从早期版本。
不清楚是不是更新没有完成的问题。看起来4.0没有这样的服务,所以这就是原因。但是如何让它出现在这里呢?
或者我可以用
$this->container = $container->get('service_container');
就像早期的版本一样?只是什么是更快的方式?
我只是试着用
$this->container = $container->get('service_container');
但我会得到
原则\DBAL\DBAL异常:建立连接以确定平台版本时发生异常。可以通过设置“server_version”配置值来避免此问题
但是我已经在config_test.yml中设置了版本,所以不清楚哪种方式更快修复。
doctrine:
dbal:
server_version: 5.7
driver: pdo_mysql
host: db_test
port: null
dbname: project
user: project
password: project
如果我加载service_container,它可能不会加载测试配置,这就是为什么我得到这个server_version错误。所以需要设法使它加载测试配置。
1条答案
按热度按时间xxe27gdn1#
发现:我在AppKernel中有硬编码的开发环境。可能这就是为什么我得到这个错误。硬编码测试环境修复。将是好的不知何故,使它没有硬编码,但它仍然比什么都没有: