Připrava databáze před testy
- kminekmatej
- Generous Backer | 37
Zdravím,
jsem přesvědčen že tento problém řeší prakticky každý kdo testoval
aplikaci s mysql, ale nenašel jsem to tu:
Jakym způsobem lze inicializovat databázi před spuštěním jakéhokoliv testu?
Mám N testů, každý z nich pracuje s databází. Já chci předtím než se vůbec spustí jakýkoliv test, provést určité operace nad databází (záznam posledních ID, konkrétně). Po proběhnutí všech testů (i failnutých) spustit nějakou další funkci (smazání balastu). Takový garbage collector.
Co jsem zkoušel:
(Mějme třídu která se o to stará Preparator, obsahuje funkce prepare(),
rollback().)
Environment::lock(…) – tímto mohu zamknout všechny testy a zamknout tak i ten preparator (když by to byl jakoby test). Nicméně nemám žádnou garanci že to bude právě ten preparator který se k tomu lockfilu dostane jako první.
setUp() a tearDown() metody a v nich spouštět transakce a rollbacky. – nelze, v aplikaci používám vlastní transakce
Pouštět příkazem *.sh a v příkazu před a po spuštění testeru provést potřebné – možné řešení, ale taková trochu prasárna :-P
- chemix
- Nette Core | 1304
Tusim ze asi chces mango tester a aby kazdy test mel vlastni db v init stavu pomoci migraci