配置 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)