View Issue Details

IDProjectCategoryView StatusLast Update
0001514Common[All Projects] Generalpublic2016-07-15 16:24
ReporterXenosAssigned ToXenos 
PrioritynormalSeveritymajorReproducibilitysometimes
Status CloseResolutionfixed 
Product Version1.0.4 
Target VersionFixed in Version1.4.0 
Summary0001514: Les tests de BDD perturbent la BDD locale
DescriptionQuand un test impliquant la BDD est exécuté, la BDD du jeu est utilisée et donc, elle est modifiée. Résultat: si je m'inscris dans le jeu en local, puis que je lance un test SQL, alors je ne peux plus me connecter au jeu local car le test a tronqué des tables, rentré des données dans des champs, etc.

Il faudrait en fait que les tests se fassent sur une BDD dédiée, vide ou purgeable.
Steps To ReproduceLancer le test AccountTest.php de VariiSpace, pour tester l'inscription & connexion sur VariiSpace
TagsNo tags attached.
Attach Tags

Relationships

related to 0001153 CloseXenos VariiSpace Créer le système de compte de jeu, avec la vue associée 

Activities

Xenostom

Xenostom

2016-06-02 16:01

developer   ~0001911

Dump de la BDD avant le test, exécution du test, puis restauration du dump?
Xenostom

Xenostom

2016-06-02 16:31

developer   ~0001912

Last edited: 2016-06-06 22:09

Un simple "beginTransaction" / "rollback" (saveState/restoreState) suffira.

Il faudra quand même exécuter ces tests sur une DB dédiée, car impossible de faire un rollback des fichiers d'init ou des fichiers SQL exécutés directement (rollback des queries lancées par PHPUnit, oui, mais pas les fichiers SQL)
Xenos

Xenos

2016-07-15 16:24

administrator   ~0002092

Non, finalement, le plus simple est de créer une config pour la zone locale quand je fais les tests. Pour VariiSpace, les tests sont faits sur selenium.variispace.localhost et la classe LocalDevHandlerRequestFacade va donc instancier l'objet PDO qui correspond (soit celui tappant sur la BDD dédiée à Selenium, si je suis sur le NDD de Selenium, soit la BDD locale normale, si je suis sur le localhost normal).

Avec cette approche, la BDD de selenium peut être poutrée dans tous les sens sans aucune conséquence. Il m'est également possible de ré-exécuter les scripts d'initialisation (automatiquement ou non) sur cette BDD locale pour m'assurer qu'ils fonctionnent bien.

Issue History

Date Modified Username Field Change
2016-05-31 17:10 Xenos New Issue
2016-05-31 17:10 Xenos Status New => Understood
2016-05-31 17:19 Xenos Relationship added related to 0001153
2016-06-02 16:01 Xenostom Note Added: 0001911
2016-06-02 16:01 Xenostom Assigned To => Xenostom
2016-06-02 16:01 Xenostom Status Understood => In progress
2016-06-02 16:31 Xenostom Note Added: 0001912
2016-06-02 16:31 Xenostom Status In progress => Ready
2016-06-02 16:31 Xenostom Resolution open => fixed
2016-06-06 22:08 AutoUpdater Assigned To Xenostom => Xenos
2016-06-06 22:08 AutoUpdater Status Ready => Resolved
2016-06-06 22:09 AutoUpdater Fixed in Version => 1.4.0
2016-07-15 16:24 Xenos Note Added: 0002092
2016-07-15 16:24 Xenos Status Resolved => Close