配置 Symfony 5.3 以使用专用的 MongoDB 数据库进行测试

Posted

技术标签:

【中文标题】配置 Symfony 5.3 以使用专用的 MongoDB 数据库进行测试【英文标题】:Configure Symfony 5.3 to use a dedicated MongoDB database for testing 【发布时间】:2021-12-17 09:32:31 【问题描述】:

我是 Symfony (5.3) 的新手,我想对我的存储库进行一些 phpunit 测试。 MongoDB 数据库通过doctrine/mongodb-odm-bundle (4.3) 使用。

关键是我无法将我的装置发送到测试数据库中。他们将使用我用于开发的默认版本。

我想我可以配置学说_mongodb.yaml,但现在我没有找到让它工作的方法。

我不确定它是否重要,但我的文档映射如下:

<?php

namespace App\Document;

use App\Document\EstablishmentDateStoreDocument;
use App\Document\GroupDocument;
use Doctrine\ODM\MongoDB\Mapping\Annotations as ODM;
use Symfony\Component\Uid\Uuid;

/**
 * 
 * @ODM\Document(db="database_local", collection="establishment",repositoryClass=EstablishmentRepository::class)
 * 
 */
class EstablishmentDocument

    /**
     * @ODM\Id(type="string")
     */
    private $id;

    /**
     * @ODM\Field(type="string")
     */
    private string $uuid;

.....

还有我的学说_mongodb.yaml:

doctrine_mongodb:
    auto_generate_proxy_classes: true
    auto_generate_hydrator_classes: true
    connections:
        default:
            server: '%env(resolve:MONGODB_URL)%'
            options: 
    default_database: '%env(resolve:MONGODB_DB)%'
    document_managers:
        default:
            auto_mapping: true
            mappings:
                App:
                    is_bundle: false
                    type: annotation
                    dir: '%kernel.project_dir%/src/Document'
                    prefix: 'App\Document'
                    alias: App

不幸的是,我没有找到很多关于该主题的资源(测试/Symfony/MongoDB)。非常感谢您的帮助。

【问题讨论】:

“我想在我的存储库上进行一些 phpunit 测试” 意味着您不知道当前测试如何或遇到问题?你具体测试什么?你试过什么? 【参考方案1】:

你应该使用这个包:https://github.com/liip/LiipTestFixturesBundle

然后在你的 framework.yml 文件中使用这个配置:

liip_test_fixtures:
    cache_db:
         sqlite: liip_test_fixtures.services_database_backup.sqlite

您所有的灯具数据都被加载到本地 sqlite 数据库中。

【讨论】:

以上是关于配置 Symfony 5.3 以使用专用的 MongoDB 数据库进行测试的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 Encore 在 Symfony 5.3 上正确安装和使用引导程序

使用 Symfony 5.3 检查 JWT (Firebase) 令牌

symfony 5.3 连接微软 sql server mssql

Symfony - Composer 更新 - 需要使用旧的依赖项(PHP 5.4 到 PHP 5.3)

“名称解析中的临时失败”:Symfony 5.3 使用 Doctrine 和 Docker 连接到 MariaDB

Symfony 5.3 新身份验证不保留我的身份验证