database - 配置 Symfony 5.3 以使用专用的 MongoDB 数据库进行测试
问题描述
我是 Symfony (5.3) 的新手,我想在我的存储库上进行一些 phpunit 测试。MongoDB 数据库通过教义/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)。非常感谢你的帮助。
解决方案
你应该使用这个包:https ://github.com/liip/LiipTestFixturesBundle
然后在你的 framework.yml 文件中使用这个配置:
liip_test_fixtures:
cache_db:
sqlite: liip_test_fixtures.services_database_backup.sqlite
您所有的固定数据都加载到本地 sqlite 数据库中。
推荐阅读
- angular - 我想在上次更改延迟后触发 onChange
- python-3.x - 图未在使用 python 的主成分分析中显示
- regex - 如何获得两个值
- php - $_SERVER['REQUEST_URI'] 不返回印地语字符
- python - 汤类选择器返回一个空列表
- javascript - 使用 Map 为异步瀑布生成函数
- c++ - 多线程时不断调用对象析构函数,但对象没有超出范围
- javascript - 将变量从 ajax 传递到 php 并且它没有被传递
- javascript - 如何在 node js 中执行类似于 goto 语句的内容,或者如何在异步函数中创建和调用函数?
- php - Laravel:函数 App\Exports\JobExport::__construct() 的参数太少,0 已通过