Problem mit Django, pytest-selenium und pytest-bdd
Verfasst: Montag 7. November 2022, 18:31
Hallo allerseits,
vielleicht ist ja hier jemand, der oder die schon einmal das selbe Problem hatte oder sich besonders gut mit dieser Materie auskennt.
Ich entwickle gerade eine Django-App. Diese teste ich mit `pytest` und `pytest-django`.
Nun möchte ich Selenium dazunehmen um Ende-zu-Ende zu testen und habe dafür `pytest-bdd` und `pytest-selenium` als Dependencies dazugenommen.
Folgendes Problem:
In meinem Test gibt es (wenig überraschend) given-steps. Dort werden Test-Daten auf der Datenbank erzeugt, was ich auch in späteren steps (when und then) sehen kann. Dazu habe ich diese Daten von der DB abgefragt und per print auf der Console ausgegeben.
Der Test ruft eine Webseite/View auf und auf der Webseite selbst sind die Daten leider nicht zu sehen. Daher habe ich in der View ebenfalls ein print eingebaut, welches die Daten aus der DB laden und anzeigen soll. In diesen Fall ist das Query leer.
Mein View-Code scheint also eine andere Datenbank zu nutzen, als mein Test-Code, denn im Test-Code sind die Daten immer auf der Datenbank zu finden, und im Django-Code nicht.
Daher habe ich an beiden Stellen bereits die `settings.DATABASES` ausgeben lassen, diese sind allerdings identisch.
Hat irgendwer eine Idee, woran das liegen kann?
Hier findet ihr den Quellcode: https://bitbucket.org/huscy/consents/sr ... templates/
Achtung: nicht der master-branch, falls ihr das auscheckt.
Die View befindet sich unter `huscy/consents/views.py` und es handelt sich um die `CreateConsentView`. In `get_context_data` gebe ich mir die Daten aus, welche ich erzeugen wollte und in `get` gebe ich die DB-settings aus.
Die Tests befinden sich unter `tests/test_viewsets.py` und die steps dazu in `test/viewsets/create_consent.feature`
Ich bin über jeden Hinweis dankbar
liebe Grüße, Stefan
vielleicht ist ja hier jemand, der oder die schon einmal das selbe Problem hatte oder sich besonders gut mit dieser Materie auskennt.
Ich entwickle gerade eine Django-App. Diese teste ich mit `pytest` und `pytest-django`.
Nun möchte ich Selenium dazunehmen um Ende-zu-Ende zu testen und habe dafür `pytest-bdd` und `pytest-selenium` als Dependencies dazugenommen.
Folgendes Problem:
In meinem Test gibt es (wenig überraschend) given-steps. Dort werden Test-Daten auf der Datenbank erzeugt, was ich auch in späteren steps (when und then) sehen kann. Dazu habe ich diese Daten von der DB abgefragt und per print auf der Console ausgegeben.
Der Test ruft eine Webseite/View auf und auf der Webseite selbst sind die Daten leider nicht zu sehen. Daher habe ich in der View ebenfalls ein print eingebaut, welches die Daten aus der DB laden und anzeigen soll. In diesen Fall ist das Query leer.
Mein View-Code scheint also eine andere Datenbank zu nutzen, als mein Test-Code, denn im Test-Code sind die Daten immer auf der Datenbank zu finden, und im Django-Code nicht.
Daher habe ich an beiden Stellen bereits die `settings.DATABASES` ausgeben lassen, diese sind allerdings identisch.
Hat irgendwer eine Idee, woran das liegen kann?
Hier findet ihr den Quellcode: https://bitbucket.org/huscy/consents/sr ... templates/
Achtung: nicht der master-branch, falls ihr das auscheckt.
Die View befindet sich unter `huscy/consents/views.py` und es handelt sich um die `CreateConsentView`. In `get_context_data` gebe ich mir die Daten aus, welche ich erzeugen wollte und in `get` gebe ich die DB-settings aus.
Die Tests befinden sich unter `tests/test_viewsets.py` und die steps dazu in `test/viewsets/create_consent.feature`
Ich bin über jeden Hinweis dankbar
liebe Grüße, Stefan