Ich habe die folgende Konfiguration verwenden:Warum erstellt der Funktionstest neue Datensätze in meinem Redis Query Cache? nur aktiviert Query-Caching auf meine symfony Anwendung
Doctine Cache Config
doctrine_cache:
providers:
cache:
namespace: '%cache_namespace%'
chain:
providers:
- array_cache
- redis_cache
- file_cache
redis_cache:
namespace: '%cache_namespace%'
predis:
host: "%redis_host%"
port: "%redis_port%"
password: "%redis_password%"
timeout: "%redis_timeout%"
array_cache:
namespace: '%cache_namespace%'
array: ~
file_cache:
namespace: '%cache_namespace%'
file_system:
directory: "%kernel.cache_dir%/application"
Lehre ORM Config
orm:
auto_generate_proxy_classes: "%kernel.debug%"
entity_managers:
an_entity_manager:
connection: connection
mappings:
AppBundle: ~
naming_strategy: doctrine.orm.naming_strategy.underscore
metadata_cache_driver:
type: service
id: "doctrine_cache.providers.cache"
query_cache_driver:
type: service
id: "doctrine_cache.providers.cache"
result_cache_driver:
type: service
id: "doctrine_cache.providers.cache"
Ich bin auch mit Funktionstests, die eine lokale sqlite-Datenbank statt der echten füllen. Was ich sehe, ist folgendes:
Jedes Mal, wenn ich meine Tests ausführen, sehe ich den Redis-Cache erstellen neue Schlüssel auch für identische Datensätze. Ich vermute, das muss sein, weil die Datenbank neu erstellt wird, bevor jeder Test ausgeführt wird, und der Inhalt der neu erstellten Zeilen spielt keine Rolle, was das Caching betrifft, aber ich kann nicht sicher sein.
Weiß jemand, ob dieses erwartete Verhalten?
sieht Ihre Frage ein wenig verwirrend, weil man hier nicht Komponententests tun. In einem echten Komponententest würden Sie Ihre Verbindung verspotten, weil Sie das nicht testen, sondern Ihre kleinste testbare Einheit. –
Sie haben recht, ich meinte eigentlich Funktionstests. Will die Frage bearbeiten – Loupax